iT邦幫忙

1

鼠年全馬鐵人挑戰 WEEK 37:封包測試工具 - Charles (二)

  • 分享至 

  • xImage
  •  

           Photo on charlesproxy.com


前言

上個禮拜簡單的分享了 Charles 的安裝與選項欄中的 Proxy 功能
而這個禮拜將會延續上禮拜的內容繼續分享另一個較為常用的選項欄功能 Tools

分享重點

  • 選項欄中的 Tools 功能介紹
    • No Caching Settings
    • Block Cookies Settings
    • Map Remote Settings
    • Map Local Settings
    • Rewrite Settings
    • Black List Settings
    • Allow List Settings

介紹 Charles

選項欄 - Tools

  • No Caching Settings (設定禁用緩存)
      緩存對 Web 來說是非常重要的存在
      因為經常會在多個頁面中重複使用相同的資源
      大幅減少每個頁面都需重新加載的問題
      但是,緩存可能會導致看不到資源的最新版本
      對於開發應用程序會是一大障礙
      No Caching 可以防止 Client 應用程序緩存任何資源
      可以透過 Import/Export 來匯入或匯出設定內容

      "Enable No Caching":防止所有請求緩存資源
      "Only for selected locations":透過 Add 防止指定請求緩存資源

  • Block Cookies Settings (設定禁用 Cookie)
      禁用 Cookie 非常適用於測試網站
      就像是在瀏覽器中禁用了 cookie 一樣
      爬蟲(例如Google)通常不支持 Cookies
      Block Cookies 可以阻止 Cookie 的發送和接收
      可以透過 Import/Export 來匯入或匯出設定內容

      "Enable Block Cookies":阻止所有請求 Cookie 的發送和接收
      "Only for selected locations":透過 Add 阻止指定請求 Cookie 的發送和接收

  • Map Remote Settings (設定遠程映射)
      如果擁有應用程序的開發版本
      並且希望能夠瀏覽以及從開發版本中獲取一些請求
      則 Map Remote 將非常實用
      Map Remote 會根據映射更改請求站點
      以便從新站點提供回傳內容,就跟原始請求一樣
      可以透過 Import/Export 來匯入或匯出設定內容

      "Enable Map Remote":透過 Add 來進一步設定遠程映射的內容

      通過此設定就可以從另一個站點提供全部或部分站點
      每個站點匹配包含 Protocol, Host, Port, Path 與 Query

      而映射的類型也可以簡單地分為幾種

    • 將目錄映射到目錄

      e.g. xk72.com/charles/ 映射到 localhost/charlesdev/

    • 將文件映射到文件

      e.g. xk72.com/charles/download.php 映射到 abc.com/testing/test.html

    • 將帶有文件模式的目錄映射到目錄

      e.g. xk72.com/charles/*.phplocalhost/charlesdev/

  • Map Local Settings (設定本地映射)
      如果必須將文件上傳到網站以測試結果
      那透過 Map Local 將大大加快開發和測試速度
      Map Local 可以使用本地文件 就像是遠程網站的一部分一樣
      本地文件的內容像正常的遠程響應一樣返回給 Client 端
      可以透過 Import/Export 來匯入或匯出設定內容

      "Enable Map Local":透過 Add 來進一步設定本地映射的內容

      每個站點匹配包含 Protocol, Host, Port, Path 與 Query

    • 補充說明

      Map Local 不會執行動態文件,因此如果文件中有任何腳本,腳本將按原樣返回到瀏覽器,這可能不是預期的結果。如果想使用動態文件,就好像它們是遠程網站的一部分一樣,可以使用 Map Remote。

  • Rewrite Settings (設定重寫)
      Rewrite 可以創建請求和響應來修改他們的規則
      而在左側顯示的 Rewrite 清單可以單獨激活和停用
      每個集合都包含了 Location 和 Rule 的設定內容
      可以透過 Import/Export 來匯入或匯出設定內容

      "Enable Rewrite":透過 Add 來進一步設定重寫的內容

      每個站點匹配包含 Protocol, Host, Port, Path 與 Query

      每個規則可以根據 Request, Response 進行設定
      接著就可以進一步定義 搜索(MAtch) 或 替換(Replace)

    • 使用技巧

      當 Rewrite 無法正常運作時,可以嘗試添加一個非常基本的規則,這樣就可以查看規則是否與請求完全匹配。並且透過選項欄 "Window""Error Log" 來獲取一些信息

  • Black List Settings (設定黑名單)
      Black List 用於僅屏蔽指定的域名
      透過新增來輸入應該被阻擋的域名
      被列入黑名單的域名的所有請求將被阻擋
      可以透過 Import/Export 來匯入或匯出設定內容

      "Enable Block List":透過 Add 來進一步設定黑名單的內容
      "Blocking action":透過選取來決定當請求不匹配時的處理方式
        "Drop connection":從瀏覽器中關閉連接
        "Return 403 response":瀏覽器返回錯誤頁面

    • 補充說明

      如果一個請求同時匹配黑名單與白名單 則該請求將被阻止

  • Allow List Settings (設定白名單)
      Allow List 用於僅允許指定的域名
      透過新增來輸入僅被允許的域名
      被列入白名單的域名之外的所有請求將被阻擋
      可以透過 Import/Export 來匯入或匯出設定內容

      "Enable Allow List":透過 Add 來進一步設定白名單的內容
      "Blocking action":透過選取來決定當請求不匹配時的處理方式
        "Drop connection":從瀏覽器中關閉連接
        "Return 403 response":瀏覽器返回錯誤頁面

    • 補充說明

      如果一個請求同時匹配黑名單與白名單 則該請求將被阻止


結尾

這週的內容主要是在介紹 Charles 的 Tools 選項欄中的功能
但是因為內容過多所以將 Tools 的分享內容給拆分了兩個部分
下週小弟將會把 Tools 的後半段功能分享完畢

而小弟也是新手使用的分享文
所以介紹的內容可能有遺漏或是錯誤,還請各位大哥大姐提點
小弟將繼續往下週邁進。 ─=≡Σ((( つ•̀ω•́)つ


參考文獻

官方網站 (載點)


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言