使用SQL注入比對條件 - AWS WAFAWS Firewall Manager、 和 AWS Shield Advanced

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用SQL注入比對條件

警告

AWS WAF 傳統支援將於 2025 年 9 月 30 日結束。

注意

這是 AWS WAF Classic 文件。只有在您在 2019 年 11 月 AWS WAF 之前建立 AWS WAF 規則和 Web 等資源,且尚未將其遷移至最新版本時ACLs,才能使用此版本。若要遷移您的 Web ACLs,請參閱 將您的 AWS WAF Classic 資源遷移至 AWS WAF

如需 的最新版本 AWS WAF,請參閱 AWS WAF

攻擊者有時會將惡意程式SQL碼插入 Web 請求中,以嘗試從資料庫擷取資料。若要允許或封鎖看似包含惡意程式SQL碼的 Web 請求,請建立一或多個SQL注入比對條件。SQL 注入比對條件會識別您要 AWS WAF Classic 檢查的 Web 請求部分,例如URI路徑或查詢字串。在程序稍後,當您建立 Web 時ACL,您可以指定是否允許或封鎖看似包含惡意程式SQL碼的請求。

建立SQL注入比對條件

當您建立SQL注入比對條件時,您會指定篩選條件,其中會指出您希望 AWS WAF Classic 檢查惡意程式SQL碼的 Web 請求部分,例如 URI或查詢字串。您可以在SQL注入比對條件中新增多個篩選條件,也可以為每個篩選條件建立單獨的條件。以下是每個組態如何影響 AWS WAF Classic 行為的方式:

  • 每次SQL注入比對條件 (建議) 超過一個篩選條件 – 當您將包含多個篩選條件的SQL注入比對條件新增至規則,並將規則新增至 Web 時ACL,Web 請求只需要比對 AWS WAF Classic SQL注入比對條件中的其中一個篩選條件,即可根據該條件允許或封鎖請求。

    例如,假設您建立一個SQL注入比對條件,且該條件包含兩個篩選條件。一個篩選條件指示 AWS WAF Classic 檢查URI是否有惡意程式SQL碼,另一個則指示 AWS WAF Classic 檢查查詢字串。 AWS WAF 如果請求似乎在 或查詢字串中包含惡意程式SQL碼,則 Classic 允許URI封鎖請求。

  • 每次SQL注入相符條件一個篩選條件 – 當您將個別SQL注入相符條件新增至規則並將規則新增至 Web 時ACL,Web 請求必須符合 AWS WAF Classic 的所有條件,才能根據條件允許或封鎖請求。

    假設您建立兩個條件,每個條件含有前述範例中兩個篩選條件中的一個。當您將兩個條件新增至相同規則並將規則新增至 Web 時ACL, AWS WAF Classic 僅允許或封鎖請求,前提是 URI和查詢字串都包含惡意程式SQL碼。

注意

當您將SQL注入比對條件新增至規則時,您也可以設定 AWS WAF Classic 以允許或封鎖看似不包含惡意程式SQL碼的 Web 請求。

若要建立SQL注入比對條件
  1. 登入 AWS Management Console 並在 開啟 AWS WAF 主控台https://console.aws.amazon.com/wafv2/

    如果您在導覽窗格中看到切換至 AWS WAF 傳統,請選取它。

  2. 在導覽窗格中,選擇SQL注入

  3. 選擇 Create condition (建立條件)

  4. 指定適用的篩選條件設定。如需詳細資訊,請參閱您在建立或編輯SQL注入比對條件時指定的值

  5. 選擇 Add another filter (新增其他篩選條件)

  6. 如果您希望新增另一個篩選,重複步驟四和五。

  7. 完成篩選條件,請選擇建立

您在建立或編輯SQL注入比對條件時指定的值

當您建立或更新SQL注入比對條件時,請指定下列值:

名稱

SQL 注入比對條件的名稱。

名稱僅能含有英數字元 (A-Z、a-z、0-9) 或以下特殊字元:_-!"#`+*},./。條件的名稱在建立後無法變更。

要篩選的請求部分是

選擇您希望 AWS WAF Classic 檢查惡意程式SQL碼的每個 Web 請求的部分:

標頭

指定的請求標頭,例如,User-AgentReferer 標頭。如果您選擇標頭,請在標頭欄位裡指定標頭的名稱。

HTTP 方法

此HTTP方法表示請求請求請求原始伺服器執行的操作類型。CloudFront 支援下列方法:DELETEGETHEADOPTIONSPATCHPOSTPUT

查詢字串

出現於?字元URL之後的 部分,如果有的話。

注意

對於SQL注入比對條件,建議您選擇所有查詢參數 (僅限值),而不是針對部分請求的查詢字串,以在 上篩選。

URI

請求的URI路徑,可識別 資源,例如 /images/daily-ad.jpg。這不包括 的查詢字串或片段元件URI。如需詳細資訊,請參閱統一資源識別碼 (URI):一般語法

除非指定轉換,URI否則 不會標準化,並如同在請求中從用戶端 AWS 接收一樣進行檢查。轉換會URI依指定重新格式化 。

Body

請求的一部分,其中包含您希望作為HTTP請求內文傳送至 Web 伺服器的任何其他資料,例如來自表單的資料。

注意

如果您選擇內文作為要在 上篩選之請求部分的值, AWS WAF Classic 只會檢查前 8192 個位元組 (8 KB)。若要允許或封鎖內文超過 8192 位元組的請求,您可以建立大小限制條件。(AWS WAF Classic 從請求標頭取得內文的長度。) 如需詳細資訊,請參閱使用容量限制條件

單一查詢參數 (僅數值)

任何您已定義做為部分查詢字串的參數。例如,如果 URL是 "www.xyz.com?UserName=abc&SalesRegion=seattle",您可以將篩選條件新增至 UserNameSalesRegion 參數。

如果您選擇單一查詢參數 (僅數值),您也可以指定查詢參數名稱。這是您要檢查的查詢字串中的參數,例如 UserNameSalesRegion查詢參數名稱的長度上限為 30 個字元。查詢參數名稱 不區分大小寫。例如,您指定它UserName做為查詢參數名稱 ,這將符合 的所有變化UserName,例如使用者名稱U sERName

所有的查詢參數 (僅數值)

類似於單一查詢參數 (僅限 值),但與其檢查單一參數的值, AWS WAF Classic 會檢查查詢字串內所有參數的值,以找出可能的惡意程式SQL碼。例如,如果 URL是 "www.xyz.com?UserName=abc&SalesRegion=seattle",且您選擇所有查詢參數 (僅限值),則如果 的值為 UserNameSalesRegion包含可能的惡意程式SQL碼,則 AWS WAF Classic 將觸發相符項目。

標頭

如果您選擇在 上篩選部分請求標頭,請從常見標頭清單中選擇標頭,或輸入您要 AWS WAF Classic 檢查惡意程式SQL碼的標頭名稱。

轉換

轉換會在 AWS WAF Classic 檢查請求之前重新格式化 Web 請求。這可消除攻擊者為了繞過 AWS WAF Classic 而在 Web 請求中使用的一些異常格式。

您只能指定一種文字轉換類型。

轉換可執行下列操作:

AWS WAF Classic 不會在 Web 請求上執行任何文字轉換,而是檢查其值中的字串是否符合

轉換成小寫

AWS WAF Classic 會將大寫字母 (A-Z) 轉換為小寫 (a-z)。

HTML 解碼

AWS WAF Classic 會以未編碼的字元取代 HTML編碼的字元:

  • " 換成 &

  • 以非中斷空格取代  

  • &lt; 換成 <

  • &gt; 換成 >

  • 將表示為十六進位格式的字元 &#xhhhh; 以對應字元取代

  • 將表示為十進位格式的字元 &#nnnn; 以對應字元取代

標準化空格

AWS WAF Classic 會以空格字元取代下列字元 (十進位 32):

  • \f、跳頁、小數 12

  • \t、標籤、小數 9

  • \n、換行,小數 10

  • \r、換行、小數 13

  • \v、垂直標籤,小數 11

  • 非中斷空格,小數 160

此外,此選項將數個空格取代為一個空格。

簡化命令列

對於包含作業系統命令列命令的請求,請使用此選項以執行以下轉換:

  • 刪除以下字元:\ " ' ^

  • 刪除以下字元前的空格:/ (

  • 將以下字元取代為空格:, ;

  • 將數個空格取代為一個空格

  • 將所有大寫字母 (A-Z) 轉換成小寫 (a-z)

URL 解碼

解碼 URL編碼的請求。

在SQL注入比對條件中新增和刪除篩選條件

您可以在SQL注入比對條件下新增或刪除篩選條件。若要變更篩選條件、新增新的篩選條件、和刪除舊的篩選條件。

若要在SQL注入比對條件下新增或刪除篩選條件
  1. 登入 AWS Management Console 並在 開啟 AWS WAF 主控台https://console.aws.amazon.com/wafv2/

    如果您在導覽窗格中看到切換至 AWS WAF 傳統,請選取它。

  2. 在導覽窗格中,選擇SQL注入

  3. 選擇您想要在條件裡新增或刪除的篩選條件。

  4. 若要新增篩選條件,請執行以下步驟:

    1. 選擇新增篩選條件

    2. 指定適用的篩選條件設定。如需詳細資訊,請參閱您在建立或編輯SQL注入比對條件時指定的值

    3. 選擇新增

  5. 若要刪除篩選條件,請執行以下步驟:

    1. 選取您要刪除的篩選條件。

    2. 選擇刪除篩選條件

刪除SQL注入比對條件

如果您想要刪除SQL注入比對條件,您需要先刪除條件中的所有篩選條件,並從正在使用該條件的所有規則中移除條件,如下列程序所述。

若要刪除SQL注入比對條件
  1. 登入 AWS Management Console 並在 開啟 AWS WAF 主控台https://console.aws.amazon.com/wafv2/

    如果您在導覽窗格中看到切換至 AWS WAF 傳統,請選取它。

  2. 在導覽窗格中,選擇SQL注入

  3. SQL注入比對條件窗格中,選擇您要刪除的SQL注入比對條件。

  4. 在右窗格中,選擇 Associated rules (關聯的規則) 標籤。

    如果使用此SQL注入比對條件的規則清單為空,請前往步驟 6。如果清單有包含任何規則,請記下該規則並繼續步驟五。

  5. 若要從使用它的規則中移除SQL注入比對條件,請執行下列步驟:

    1. 在導覽窗格中,選擇規則

    2. 選擇使用您要刪除之SQL注入比對條件的規則名稱。

    3. 在右窗格中,選取您要從規則中移除的SQL注入比對條件,然後選擇移除選取的條件

    4. 針對使用您要刪除的SQL注入比對條件的所有其餘規則,重複步驟 b 和 c。

    5. 在導覽窗格中,選擇SQL注入

    6. SQL注入比對條件窗格中,選擇您要刪除的SQL注入比對條件。

  6. 選擇刪除以刪除選取的條件。