die("Hacking Detect
}
else {
return $db_string;
}
}
当程序的SQL语句被监测到恶意行为后, 会打开相应条件语句里的fail开关, 也就是触发监测后根据信息会留下一条精确的日志信息。 管理员排查日志就能精确定位程序中的SQL注射漏洞。
如何部署MysqlIds
MysqlIds暂时只支持PHP+MYSQL架构的Web程序, 作为开源程序和其原理的灵活性, 大家可以很方便将MysqlIds和自己程序无缝结合。 比如国内站长采用比较广泛的一款PHP建站程序DeDecms, 在DeDecms历史版本中被披露过很多安全问题, 其中SQL注射是其安全问题中危害最大也最多的问题。 为了解决SQL注射问题, DedeCms在其发布的最新版中的数据库类中封装了80sec的Mysqlids, 以用来抵御和检测Sql注射漏洞。 我们可以参考DeDecms的MYSQL数据库类, 将MysqlIds部署在程序中:
\include\dedesql.class.php
DeDecms的MYSQL数据库类161行的ExecuteNoneQuery函数封装了MysqlIds, 程序运行的SQL语句在进入MYSQL查询之前都会使用MysqlIds的CheckSql函数处理。
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->if($this->safeCheck) CheckSql($this->queryString,’update’);
return mysql_query($this->queryString,$this->linkID);
脚本类IDS展望
近年来大家对安全越来越重视, Web程序的开发也越来越多的考虑程序的安全性, 脚本类IDS作为一种花销很小当最有效的安全措施值得大力推广, 也许以后的WEB程序在开发之初就会将这类脚本IDS的概念设计在自己的程序中, 那么大家只需要打开程序中的一个设置开关就能被实时保护, 并能最准确的定位安全问题。 目前MysqlIds在80SEC的官方网站上仍然是1.0版, 希望他们以后能提供功能更强大脚本IDS, 同时感谢80SEC给我们带来的全新WEB安全概念。
MysqlIds下载:
http://www.ixpub.net/thread-900711-1-1.html
……