跳至內容

如何使用 AWS WAF 以封鎖特定副檔名上傳?

2 分的閱讀內容
0

我想限制使用特定副檔名的檔案上傳 (HTTP POST 請求) 到我的 Web 伺服器。

簡短描述

您分析 HTTP 請求的 POST 資料時,上傳的內容可以是以下兩種類型之一:

  • 表單資料
  • 二進位

若要限制具有特定副檔名 (.pdf、.docx、.exe) 的檔案上傳,您需要在 AWS WAF 中建立並設定自訂 Web 存取控制清單 (web ACL) 規則。

注意: AWS WAF 會檢查請求內文的前 8 KB (8,192 位元組)。如需較大主體請求的資訊,請參閱 AWS WAF 中的超大型網頁請求元件

解決方法

識別 POST 資料使用的內容類型

HTTP 請求中的 POST 資料通常使用表單資料或二進位。

  • 表單資料包括使用者在網頁 (或「HTML 表單」) 中輸入並由 HTTP 傳送 (或「貼文」) 到 Web 伺服器的任何資料。
  • 二進位有效負載是除了文字有效負載之外的任何內容。例如,二進制有效負載可以是 .jpeg 檔案、.gzip 檔案或 .xml 檔案。這包括一般二進制資料,例如 .pdf 應用程式、.jpeg 影像或 .zip 應用程式。若要了解所有檔案副檔名類型,請參閱網路號碼分配機構 (IANA) 網站上的媒體類型

若要識別您的 POST 請求類型,請檢查 HTTP POST 標頭中的 Content-Type 值。例如:

Content-Type: multipart/form-data

根據您的 Content-Type 輸出,查看與您的標題值相符的相應部分。

為 multipart/form-data 內容建立規則

請完成下列步驟:

  1. 開啟 AWS WAF console (AWS WAF 主控台)。
  2. 在導覽窗格中,選擇 AWS WAF
  3. 選擇 Resources & protection packs (資源和防護套件)。
  4. 選取您的防護套件
  5. 在您選取的防護套件中,選取 Rules (規則)。
  6. 選取規則旁邊的 View and edit (檢視和編輯),檢視或修改與您的防護套件相關的規則。
  7. 在管理規則的右側窗格中,選擇 Add rules (新增規則)。
  8. 選擇 Create new rule (建立新規則)。
  9. 選擇 Custom rule (自訂規則),然後選取 Next (下一步)。
  10. Rule Type (規則類型),選擇 Custom rule (速自訂規則),然後選取 Next (下一步)。
  11. 若要設定規則,請設定以下值:
    Action (動作),為自訂規則選擇 Block (封鎖)。
    Name (名稱) 中,輸入可識別此規則的名稱。
    If a request (如果請求) 中,選擇 matches the statement (比對陳述式)。然後,完成 Statement (陳述式) 的下列欄位:
    Inspect (檢查),選擇 JSON Body (內文)。
    針對 JSON 比對範圍,選擇
    Action for invalid JSON body requests (針對無效 JSON 內文請求的動作),請選擇適合您的選項。
    針對要檢查的內容,選擇完整 JSON 內容
    針對比對類型,選擇比對規則表達式
    針對規則表達式,請輸入要比對的 regex 模式。請參閱下列範例:
(?:.pdf|.doc|.docx|.ppt)
  1. (選用) 在 Text transformation (文字轉換) 新增文字轉換,或將這些欄位保留為 None (無)。
  2. Oversize Handling (超大型處理),選擇適合您使用案例的相關選項。
  3. 選擇 Create Rule (建立規則)。
  4. 選擇 Save (儲存)。

建立二進位值的規則

請完成下列步驟:

  1. 開啟 AWS WAF console (AWS WAF 主控台)。
  2. 在導覽窗格中,選擇 AWS WAF
  3. 選擇 Resources & protection packs (資源和防護套件)。
  4. 選取您的防護套件
  5. 在您選取的防護套件中,選取 Rules (規則)。
  6. 選取規則旁邊的 View and edit (檢視和編輯),檢視或修改與您的防護套件相關的規則。
  7. 在管理規則的右側窗格中,選擇 Add rules (新增規則)。
  8. 選擇 Create new rule (建立新規則)。
  9. 選擇 Custom rule (自訂規則),然後選取 Next (下一步)。
  10. Rule Type (規則類型),選擇 Custom rule (速自訂規則),然後選取 Next (下一步)。
  11. 若要設定規則,請設定以下值:
    Action (動作),為自訂規則選擇 Block (封鎖)。
    Name (名稱) 中,輸入可識別此規則的名稱。
    If a request (如果請求) 中,選擇 matches the statement (比對陳述式)。
    完成 Statement (陳述式) 的下列欄位:
    針對檢查,選擇單一標頭
    針對標頭欄位名稱,輸入 Content-Type
    針對比對類型,選擇比對規則表達式
    針對規則表達式,請輸入要比對的 regex 模式。
    請參閱以下 .pdf.jpeg 檔案範例:
(?:pdf|jpeg)
  1. (選用) 在 Text transformation (文字轉換) 新增文字轉換,或將這些欄位保留為 None (無)。
  2. 選擇 Create Rule (建立規則)。

**注意:**要限制特定上傳 URI 路徑的規則,請使用可檢查路徑的 Web ACL 規則內的 AND 陳述式

AWS 官方已更新 1 年前