azure - Web App Firewall 如何防止 SQL 注入?
问题描述
我听说 Azure App Gateway 的 Web App Firewall 能够保护应用程序免受 SQL 注入攻击。它是如何实现这一目标的?
它是否检查所有传入的有效负载(正文和 URL 参数)?如果是这样,我假设必须在应用程序网关级别设置 TLS 终止,否则它将无法读取任何内容。它是否只是在有效负载中寻找一些可疑的字符串(如“;DROP TABLE....”)?它如何知道有效载荷中的内容是否安全?我的意思是,我可能会向我的 Web 应用程序发送一些看起来像 SQL 注入的有效负载 - WAF 如何知道哪个请求是攻击,哪个不是?
解决方案
以下是 OWASP 用于创建 SQL 注入规则的参考资料列表。本质上,它正在查看查询以查看其中是否有任何可疑之处(试图混淆命令的评论、错误位置的反引号、试图获取服务器/主机信息等)。这是一个很长的列表,在这里无法描述,但参考站点可能比原始规则更容易理解。
参考资料(来自规则代码):
- SQL 注入知识库(通过 @LightOS)
- SQLi 过滤器规避备忘单 -
- SQL 注入备忘单 -
- SQLMap 的篡改脚本(用于规避)
- https://svn.sqlmap.org/sqlmap/trunk/sqlmap/tamper/(链接不再有效)https://medium.com/@drag0n/sqlmap-tamper-scripts-sql-injection-and-waf-bypass -c5a3f5764cb3包含有关该过程的详细信息。
推荐阅读
- apache-spark - 为 impala 表无缝覆盖底层 parquet 数据
- java - 如何比较具有 500,000k 行的单列两个 Excel 文件
- javascript - 如何在 Firebase Function 中访问 Firebase 数据库的快照?
- asp.net-core - Identity Server 4、外部提供者和 Web API
- google-apps-script - 下拉脚本滞后
- swift - 需要关于可折叠表格视图标题的帮助
- sqlite - 在连接到 Linux/Debian 盒子的 USB 记忆棒上安装 SQLite
- android - 如何在活动之间传递书籍数组列表
- c - 在 scanf() 之后调用 printf() 不会返回任何内容
- javascript - D3-使用 d3.mouse 定位工具提示不起作用