上次更新时间:2021 年 2 月 22 日
我需要上传 (POST) 一个扩展名被 AWS WAF 阻止的文件。如何上传被 AWS WAF 阻止的文件?
简短描述要了解 AWS WAF 为什么阻止 POST 请求,请请考虑以下内容:
AWS WAF BODY 筛选器仅检查 POST 请求的负载数据的前 8192 个字节中是否有恶意脚本。 SQLinjection 和跨站点脚本 (XSS) 规则对元数据中包含随机字符的文件非常敏感。这些随机字符可能触发 Web 访问控制列表 (Web ACL) 规则,因为它们与实际的 XSS 或 SQLinjection 相似。AWS WAF 不支持筛选特定文件类型。您必须使用其他方法来消除因上传文件或图像而导致的误报。
解决方法注意:规则将按照在 Web ACL 中列出的顺序进行处理。对于以下建议,请务必根据需要对规则优先级进行重新排序。
为您的使用情形选择最佳方法:
使用字符串匹配规则语句 (AWS WAF) 或字符串匹配条件 (AWS WAF Classic) 应用选择性排除。将与文件的主体相关联的特定短语添加到您的安全列表。如果 URI 有特定路径,请将该路径添加到您的安全列表。 使用单独的域进行文件上传。请务必考虑这对于您的使用情形来说是否经济高效。 扫描(清理)嵌入式代码和数据的文件和图像。在上传文件之前,您可以在客户端执行此操作。如果您需要创建排除规则,也可以在上传文件后在后端执行此操作。 在上传文件之前先压缩文件。警告:请确认未压缩恶意文件。 如果上传是从一系列已知 IP 地址进行的,请将这些 IP 地址添加到您的安全列表。 使用 Base64 编码。所有图像数据都经过编码,这意味着 AWS WAF 无法在图像上触发 XSS。
警告:一定要避免对恶意图像进行编码。 实施图像优化技术,例如删除区块或位随机化。