如何检测坐在反向代理的SQL注入?
我正在用java编写一个简单的reverse proxy
。 所以,我可以访问在客户端和服务器之间交换的所有Http requests and responses
。 坐在代理服务器上,我试图检测SQL注入攻击。
我有几个链接 - (例如)
http://www.symantec.com/connect/articles/detection-sql-injection-and-cross-site-scripting-attacks
其中提到了一些正则表达式,但我想这不是那么简单。 为所有可能/有效的SQL语句编写正则表达式是不可能的。 由于市场上有这么多的数据库,SQL语句必须遵循一些语法规则。
让我把问题分解为一个简单的问题 -
Given a string, can it be checked that whether it contains a valid SQL statement?
任何人都可以告诉我最好的办法吗? 或者,任何一个为我做的图书馆?
让我先把我的帽子交给@ neil-mcguigan,他提出了今年最好的评论:“一个sql注入攻击是有效的sql,这就是为什么它可以工作”
在铭记这个公理的同时,我认为可以依靠一些启发式方法来识别和阻止一般的恶意行为。 例如,在攻击过程中您经常会看到多次不成功的尝试。 攻击者的行为和各种属性(例如源地理IP,访问时间,用户代理或浏览器指纹等)可能与普通普通用户不同。 市场上的许多网络安全设备实际上都使用这些设备,并将它们与其他威胁源一起用于检测。
但是,只要你发展到多台服务器来保护,就很难坚持和利用这些信息。 在一个具有负载平衡器和多个反向代理的Web场中,实时访问每个设备的日志,并针对每个未知呼叫运行启发式操作比自己提出启发式操作更具挑战性。
链接地址: http://www.djcxy.com/p/93463.html上一篇: How to detect SQL Injection sitting at a reverse proxy?
下一篇: still got sql injection hacked using PDO parameterized query