如何保护 Apache 服务器免受 SQL 注入

Red*_*ano 0 sql fail2ban apache2

不进入底层平台,有没有什么有效的方法来保护 Web 服务器免受 SQL 注入?任何特殊的 Apache 模块或配置?fail2ban 在这里合适吗?

dav*_*dgo 31

Apache 不受 SQL 注入的影响,因为它不是数据库。

如果您想保护 Apache 运行的应用程序反过来调用数据库,则可以在前面放置一个 WAF(Web 应用程序防火墙)。

另一种方法是在 Apache 中使用 mod_security 和一个在 post/gets 中查找 SQL 的规则集。

Fail2ban 的用途非常有限,因为它会扫描日志文件以查找暴力尝试的迹象。SQL 注入通常在日志中不可见,即使日志被扩展以公开这些信息,它们也不太可能有太大用处,因为它们会在处理完请求后接收请求。

  • “另一种方法是在 Apache 中使用 mod_security 和一个在 post/gets 中查找 SQL 的规则集。” 抱歉,但是[那是个糟糕的主意](https://thedailywtf.com/articles/Injection_Rejection)。严肃地说,在一般情况下,没有办法在不完全无效或极易受到误报的情况下获得这种保护。 (10认同)
  • @josephsible - 我们是否应该同意修复 SQL 注入的正确位置在应用程序中,其他任何东西都不那么理想 - 但如果你最终无法控制应用程序并且无法替代它,请使用 mod_security 或等效物限制 SQL设备比什么都好(但不是很好) (2认同)

Joh*_*ald 18

SQL 注入是有据可查的。修复您的应用程序,而不一定是您的 Web 服务器。

CWE-89 对 SQL 注入进行了详细分类。请注意参数化或使用合适的持久性库等缓解措施是如何处于开发阶段的。在部署后,WAF 风格的过滤器只能做这么多。

OWASP 有关于如何正确开发应用程序首先避免 SQL 注入的实用资源

MITRE ATT&ACK 将其归类为面向公众的应用程序漏洞,并列出了缓解措施之间的软件更新和应用程序隔离。

  • 还认为这更像是一个应用程序问题,而不是服务器问题。 (3认同)