全部產品
Search
文件中心

Web Application Firewall:調用方式

更新時間:Jan 10, 2026

Web Application Firewall介面調用是向WAF API的服務端地址發送HTTP GET請求,並按照介面說明在請求中加入相應請求參數,調用後系統會返回處理結果。請求及返回結果都使用UTF-8字元集編碼。

請求結構

Web Application Firewall的API是RPC風格,您可以通過發送HTTP GET請求調用WAF API。

其請求結構如下:

https://Endpoint/?Action=xx&Parameters

其中:

  • Endpoint:根據WAF執行個體所屬的地區選擇適合的API服務接入地址。

    • 中國內地:wafopenapi.cn-hangzhou.aliyuncs.com

    • 非中國內地:wafopenapi.ap-southeast-1.aliyuncs.com

  • Action:要執行的操作,如使用DescribeDomainNames查詢已添加的網域名稱名稱列表。

  • Version:要使用的API版本,WAF的API版本是2019-09-10

  • Parameters:請求參數,每個參數之間用“&”分隔。

    請求參數由公用請求參數和API自訂參數組成。公用參數中包含API版本號碼、身分識別驗證等資訊,詳情請參見公用參數

下面是一個調用DescribeDomainNames介面查詢指定WAF執行個體中已添加的網域名稱名稱列表的樣本:

說明

為了便於使用者查看,本文檔中的樣本都做了格式化處理。

https://wafopenapi.cn-hangzhou.aliyuncs.com/?Action=DescribeDomainNames
&Region=cn
&InstanceId=waf_elasticity-cn-0xldbqtm005
&Format=xml
&Version=2019-09-10
&Signature=xxxx%xxxx%3D
&SignatureMethod=HMAC-SHA1
&SignatureNonce=15215528852396
&SignatureVersion=1.0
&AccessKeyId=**********
&TimeStamp=2012-06-01T12:00:00Z
…

API授權

為了確保您的帳號安全,建議您使用子帳號的身份憑證調用API。如果您使用RAM使用者調用WAF API,您需要為該RAM使用者建立、附加相應的授權策略。

API簽名

WAF服務會對每個API請求進行身分識別驗證,無論使用HTTP還是HTTPS協議提交請求,都需要在請求中包含簽名(Signature)資訊。

WAF通過使用AccessKey ID和AccessKey Secret進行對稱式加密的方法來驗證請求的寄件者身份。AccessKey是為阿里雲帳號和RAM使用者發布的一種身份憑證(類似於使用者的登入密碼),其中AccessKey ID用於標識訪問者的身份,AccessKey Secret是用於加密簽名字串和伺服器端驗證簽名字串的密鑰,必須嚴格保密。

RPC API需按如下格式在請求中增加簽名(Signature):

https://endpoint/?SignatureVersion=1.0&SignatureMethod=HMAC-SHA1&Signature=CT9X0VtwR86fNWSnsc6v8YGOjuE%3D&SignatureNonce=3ee8c1b8-83d3-44af-a94f-4e0ad82fd6cf

DescribeDomainNames為例,則簽名前的請求URL如下:

https://wafopenapi.cn-hangzhou.aliyuncs.com/?Action=DescribeDomainNames
&Region=cn
&InstanceId=waf_elasticity-cn-0xldbqtm005
&TimeStamp=2016-02-23T12:46:24Z
&Format=XML
&AccessKeyId=testid
&SignatureMethod=HMAC-SHA1
&SignatureNonce=3ee8c1b8-83d3-44af-a94f-4e0ad82fd6cf
&Version=2019-09-10
&SignatureVersion=1.0

完成以下步驟計算簽名:

  1. 使用請求參數建立待簽名字串:

    GET&%2F&AccessKeyId%****************DomainNames&Region%3Dcn&InstanceId%3Dwaf_elasticity-cn-0xldbqtm005&Format%3DXML&SignatureMethod%3DHMAC-SHA1&SignatureNonce%3D3ee8c1b8-83d3-44af-a94f-4e0ad82fd6cf&SignatureVersion%3D1.0&TimeStamp%3D2016-02-23T12%253A46%253A24Z&Version%3D2019-09-10
  2. 計算待簽名的HMAC的值。

    在AccessKey Secret後添加一個“&”作為計算HMAC值的key。本樣本中的key為testsecret&

    CT9X0VtwR86fNWSnsc6v8YGOjuE=
  3. 將簽名加到請求參數中:

    https://wafopenapi.cn-hangzhou.aliyuncs.com/?Action=DescribeDomainNames
    &Region=cn
    &InstanceId=waf_elasticity-cn-0xldbqtm005
    &TimeStamp=2016-02-23T12:46:24Z
    &Format=XML
    &AccessKeyId=***********
    &SignatureMethod=HMAC-SHA1
    &SignatureNonce=3ee8c1b8-83d3-44af-a94f-4e0ad82fd6cf
    &Version=2019-09-10
    &SignatureVersion=1.0
    &Signature=CT9X0VtwR86fNWSnsc6v8YGOjuE%3D