$fail = true;
$error="union detect";
}
MysqlIds使用了PHP中strpos函数来判断程序执行的SQL语句是否存在恶意的SQL注射, 这个函数可以高效率的查找指定字符串返回一个布尔值, 当程序执行SQL语句中使用联合查询, 规则条件就开始生效, 启用preg_match函数调用IDS规则来匹配恶意的联合查询语句, 这个IDS规则是精心构造的正则表达式, 类似于大家使用的传统IDS规则, 由于MysqlIds是在程序的数据库操作层来检测, 所有能抓取到有效且实实在在的安全问题, 且更有效更具有针对性。 MysqlIds还针对程序运行的SQL语句出现的异常情况进行了监控, 如SQL语句中出现异常的注释符, 一般黑客进行SQL注射攻击, 很多情况下需要注释符完成SQL注射攻击的SQL语句, 同时黑客还有可能使用一些比较危险的MYSQL函数和功能, 如sleep、benchmark、load_file和into outfile功能等, 这些黑客在程序中使用SQL注射的恶意动作都能被MysqlIds监测到。 MysqlIds与传统Web安全防御措施的区别
传统的Web安全防御措施都非常滞后, 在Web程序里未知的漏洞被攻击的情况下, 管理员往往要排查很多东西才能找到问题的关键点, 有的时候可能是使用的程序中存在一个未知的SQL注射漏洞被黑客利用, 却无法确定黑客是如何攻击, 而导致整个网站一而再, 再而三的沦陷。 合理地部署Mysqlids后, 就可以帮助管理员第一时间准确的定位网站的Web程序漏洞, 关键在于MysqlIds核心的日志功能, 它能准确的将每次精确匹配报警后的信息存入日志, 代码如下:
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->if (!empty($fail))
{
fputs(fopen($log_file,’a+’),"(北联网教程,专业提供视频软件下载)
……