AWS::WAFRegional::SqlInjectionMatchSet - AWS CloudFormation
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS::WAFRegional::SqlInjectionMatchSet

注意

这是 AWS WAF Classic 文档。有关更多信息,请参阅开发人员指南中的 AWS WAF Classic

有关最新版本的 AWS WAF,请使用 AWS WAFV2 API 并参阅 AWS WAF 开发人员指南。对于最新版本,AWS WAF 具有一组用于区域和全球范围的终端节点。

包含 SqlInjectionMatchTuple 对象的一种复杂类型,这些对象指定您希望 AWS WAF 检查恶意 SQL 代码段的 Web 请求各部分,如果希望 AWS WAF 检查标头,则指定标头的名称。如果 SqlInjectionMatchSet 包含多个 SqlInjectionMatchTuple 对象,则请求仅需要在请求的一个指定部分中包含 SQL 代码段,即可被视为匹配项。

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "Type" : "AWS::WAFRegional::SqlInjectionMatchSet", "Properties" : { "Name" : String, "SqlInjectionMatchTuples" : [ SqlInjectionMatchTuple, ... ] } }

YAML

Type: AWS::WAFRegional::SqlInjectionMatchSet Properties: Name: String SqlInjectionMatchTuples: - SqlInjectionMatchTuple

属性

Name

SqlInjectionMatchSet 的名称(如果有)。

必需:是

类型:字符串

最低1

最高128

模式.*\S.*

Update requires: Replacement

SqlInjectionMatchTuples

指定您希望检查恶意 SQL 代码段的 Web 请求部分。

必需:否

类型SqlInjectionMatchTuple 的列表

Update requires: No interruption

返回值

Ref

在将此资源的逻辑 ID 传递给内部 Ref 函数时,Ref 返回资源的物理 ID,例如 1234a1a-a1b1-12a1-abcd-a123b123456。

For more information about using the Ref function, see Ref.

示例

查找 SQL 注入

下面的示例在 HTTP 请求的查询字符串中查找 SQL 代码段。

JSON

"SqlInjDetection": { "Type": "AWS::WAFRegional::SqlInjectionMatchSet", "Properties": { "Name": "Find SQL injections in the query string", "SqlInjectionMatchTuples": [ { "FieldToMatch" : { "Type": "QUERY_STRING" }, "TextTransformation" : "URL_DECODE" } ] } }

YAML

SqlInjDetection: Type: "AWS::WAFRegional::SqlInjectionMatchSet" Properties: Name: "Find SQL injections in the query string" SqlInjectionMatchTuples: - FieldToMatch: Type: "QUERY_STRING" TextTransformation: "URL_DECODE"

关联 SQL 注入匹配集与 Web ACL 规则

下面的示例将 SqlInjDetection 匹配集关联到某条 Web 访问控制列表 (ACL) 规则。

JSON

"SqlInjRule" : { "Type": "AWS::WAFRegional::Rule", "Properties": { "Name": "SqlInjRule", "MetricName" : "SqlInjRule", "Predicates": [ { "DataId" : { "Ref" : "SqlInjDetection" }, "Negated" : false, "Type" : "SqlInjectionMatch" } ] } }

YAML

SqlInjRule: Type: "AWS::WAFRegional::Rule" Properties: Name: "SqlInjRule" MetricName: "SqlInjRule" Predicates: - DataId: Ref: "SqlInjDetection" Negated: false Type: "SqlInjectionMatch"

创建 Web ACL

以下示例将 SqlInjRule 规则关联到一个 Web ACL。此 Web ACL 允许所有请求,但请求的查询字符串中包含 SQL 代码者除外。

JSON

"MyWebACL": { "Type": "AWS::WAFRegional::WebACL", "Properties": { "Name": "Web ACL to block SQL injection in the query string", "DefaultAction": { "Type": "ALLOW" }, "MetricName" : "SqlInjWebACL", "Rules": [ { "Action" : { "Type" : "BLOCK" }, "Priority" : 1, "RuleId" : { "Ref" : "SqlInjRule" } } ] } }

YAML

MyWebACL: Type: "AWS::WAFRegional::WebACL" Properties: Name: "Web ACL to block SQL injection in the query string" DefaultAction: Type: "ALLOW" MetricName: "SqlInjWebACL" Rules: - Action: Type: "BLOCK" Priority: 1 RuleId: Ref: "SqlInjRule"