请输入您要查询的百科知识:

 

词条 MysqlIds
释义

IDS是英文“Intrusion Detection Systems”的缩写,中文意思是“入侵检测系统”。传统的IDS是一个监听设备,这个设备通过网络链路挂接在服务器和客户端所有流量都必须流经的链路上,IDS就是通过特有IDS规则匹配黑客恶意攻击入侵行为的流量,进行即时的监测和报警。

MysqlIds是由在国内安全界很著名的web安全研究组织80SEC在2008年编写。

使用MysqlIds可以更好的、更有效率的帮助网站管理员和程序员抵御和检测Sql注射漏洞,国内知名CMS系统DEDECMS也是使用此程序。

MysqlIds原理

MysqlIds 由PHP编写,通过一个封装的安全函数,监测程序中运行的SQL查询语句,针对黑客经常使用的union查询、select子查询、不常用的SQL注释符、文件操作和 benchmark等危险函数行为进行报警。

这个IDS是无缝封装在程序里的数据库操作流程里的,也就是黑客通过程序漏洞进行恶意的SQL注射都能被非常详细的监测到。

程序员或者网站站长甚至能使用IDS发现自己网站程序中未被察觉的0day漏洞。

Mysqlids的检测工作使用PHP实现,相对于 SQL语句来说消耗的时间非常小,合理地部署Mysqlids可以极大地提高程序的安全性。

MysqlIds日志

当程序的SQL语句被监测到恶意行为后,会打开相应条件语句里的fail开关,也就是触发监测后根据信息会留下一条精确的日志信息。管理员排查日志就能精确定位程序中的SQL注射漏洞。

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 安装

MysqlIds暂时只支持PHP+MYSQL架构的Web程序,作为开源程序和其原理的灵活性,大家可以很方便将 MysqlIds和自己程序无缝结合。

我们可以将MysqlIds部署在程序中:\\include\\dedesql.class.php

用MYSQL数据库类的ExecuteNoneQuery函数封装MysqlIds,程序运行的SQL语句在进入MYSQL查询之前都会使用MysqlIds的CheckSql函数处理。

if($this->safeCheck) CheckSql($this->queryString,’update’); return mysql_query($this->queryString,$this->linkID);

大家可以根据此案例自己选择合适的添加位置以及相关函数。

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/3/25 11:07:11