我想创建 AWS WAF 规则以防止 SQL 注入和跨站脚本攻击 (XSS)。
简短描述
为帮助防止 SQL 注入和 XSS 攻击,请使用以下保护措施之一:
- 内置 SQL 注入和 XSS 引擎
- 针对 SQL 注入和 XSS 注入攻击的 AWS 托管规则
**注意:**AWS WAF 为请求正文、标头和 Cookie 设定了最大大小检查配额。有关详细信息,请参阅 AWS WAF 中的超大 Web 请求组件。
解决方法
**注意:**最佳做法是将 Action(操作)设置为 Count(计数),在非生产环境中测试规则。使用您的 AWS WAF 日志上的 Amazon CloudWatch 指标来评估规则。测试规则后,将 Action(操作)更改为 Block(阻止)。
使用内置的 SQL 注入和 XSS 引擎
攻击可能发生在 HTTP 请求的不同部分,例如 HTTP 标头、查询字符串或 URI。要根据内置缓解引擎检查 HTTP 请求的不同部分,请配置 AWS WAF 规则。
创建 SQL 注入攻击规则语句以检查恶意 SQL 代码。创建 XSS 攻击规则语句以检查 Web 请求组件中是否存在恶意脚本。
创建 SQL 注入或 XSS 攻击规则语句
完成以下步骤:
- 打开 AWS WAF 控制台。
- 在导航窗格中,选择 AWS WAF。
- 选择 Resources & protection packs(资源和保护包)。
- 找到您的保护包,然后选择 Rules(规则)旁边的 View and edit(查看和编辑)。
- 在右侧窗格中,选择 Add rules(添加规则)。
选择 Custom rule(自定义规则),然后选择 Next(下一步)。
再次选择 Custom rule(自定义规则),然后选择 Next(下一步)。
- 将规则 Action(操作)设置为 BLOCK(阻止)。
- 输入您的 Rule name(规则名称)。
- 对于 If a request(如果请求),展开下拉列表并选择 Matches the statement(与语句相匹配)。
- 在 Statement(语句)下,对于 Inspect(检查),选择您希望规则语句评估的请求组件。
- 对于 Match Type(匹配类型),选择 Contains SQL injection attacks(包含 SQL 注入攻击)或 Contains XSS injection attacks(包含 XSS 注入攻击)。
(可选)选择文本转换。
- 选择 Create Rule(创建规则)。
创建针对多个请求组件进行评估的 SQL 注入或 XSS 攻击规则语句
完成以下步骤:
- 打开 AWS WAF 控制台。
- 在导航窗格中,选择 AWS WAF。
- 选择 Resources & protection packs(资源和保护包)。
- 找到您的保护包,然后选择 Rules(规则)旁边的 View and edit(查看和编辑)。
- 在右侧窗格中,选择 Add rules(添加规则)。
选择 Custom rule(自定义规则),然后选择 Next(下一步)。
再次选择 Custom rule(自定义规则),然后选择 Next(下一步)。
- 将规则 Action(操作)设置为 BLOCK(阻止)。
- 输入您的 Rule name(规则名称)。
- 对于 If a request(如果请求),展开下拉列表并选择 matches at least one of the statements (OR)(匹配至少一个语句 (OR))。
- 在 Statement 1(语句 1)下,对于 Inspect(检查),选择您希望规则语句评估的请求组件。
- 对于 Match Type(匹配类型),选择 Contains SQL injection attacks(包含 SQL 注入攻击)或 Contains XSS injection attacks(包含 XSS 注入攻击)。
(可选)选择文本转换。
- 在 Statement 2(语句 2)下,对于 Inspect(检查),选择您希望规则语句评估的请求组件。
- 对于 Match Type(匹配类型),选择 Contains SQL injection attacks(包含 SQL 注入攻击)或 Contains XSS injection(包含 XSS 注入)。
(可选)选择文本转换。
- 选择 Create Rule(创建规则)。
**注意:**要使该规则起作用,必须应用正确的文本转换。例如,如果您想让 AWS WAF 检查 Cookie,请使用 URL 解码、HTML 实体解码和小写。
使用 AWS 托管规则进行 SQL 注入和 XSS 注入攻击
要防范应用程序漏洞或其他有害流量,但不要自行编写规则,请使用适用于 AWS WAF 的 AWS 托管规则。
注意:
使用 SQL 数据库托管规则组防御 SQL 注入攻击。使用核心规则集 (CRS) 托管规则组防御 XSS 注入攻击。
将 AWS 托管规则组添加到 Web ACL
完成以下步骤:
- 打开 AWS WAF 控制台。
- 在导航窗格中,选择 AWS WAF。
- 选择 Resources & protection packs(资源和保护包)。
- 找到您的保护包,然后选择 Rules(规则)旁边的 View and edit(查看和编辑)。
- 在右侧窗格中,选择 Add rule(添加规则)。
选择 AWS-managed rule group(AWS 托管规则组),然后单击 Next(下一步)。
- 选择要添加的 SQL 数据库或核心规则集规则组。
**注意:**要使用当前的 AWS 托管规则组,请选择该托管规则组并进行编辑。有关编辑设置的更多信息,请参阅使用托管规则组。
- 选择 Create rule(创建规则)。
相关信息
使用更新的控制台体验开始使用 AWS WAF
测试和调整您的 AWS WAF 保护措施