360提供的SQL防注入
2016-09-06 09:54
281 查看
<?php class sqlsafe { private $getfilter = "'|(and|or)\\b.+?(>|<|=|in|like)|\\/\\*.+?\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\\s+(TABLE|DATABASE)"; private $postfilter = "\\b(and|or)\\b.{1,6}?(=|>|<|\\bin\\b|\\blike\\b)|\\/\\*.+?\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\\s+(TABLE|DATABASE)"; private $cookiefilter = "\\b(and|or)\\b.{1,6}?(=|>|<|\\bin\\b|\\blike\\b)|\\/\\*.+?\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\\s+(TABLE|DATABASE)"; /** * 构造函数 */ public function __construct() { foreach($_GET as $key=>$value){$this->stopattack($key,$value,$this->getfilter);} foreach($_POST as $key=>$value){$this->stopattack($key,$value,$this->postfilter);} foreach($_COOKIE as $key=>$value){$this->stopattack($key,$value,$this->cookiefilter);} } /** * 参数检查并写日志 */ public function stopattack($StrFiltKey, $StrFiltValue, $ArrFiltReq){ if(is_array($StrFiltValue))$StrFiltValue = implode($StrFiltValue); if (preg_match("/".$ArrFiltReq."/is",$StrFiltValue) == 1){ $this->writeslog($_SERVER["REMOTE_ADDR"]." ".strftime("%Y-%m-%d %H:%M:%S")." ".$_SERVER["PHP_SELF"]." ".$_SERVER["REQUEST_METHOD"]." ".$StrFiltKey." ".$StrFiltValue); showmsg('您提交的参数非法,系统已记录您的本次操作!','',0,1); } } /** * SQL注入日志 */ public function writeslog($log){ $log_path = CACHE_PATH.'logs'.DIRECTORY_SEPARATOR.'sql_log.txt'; $ts = fopen($log_path,"a+"); fputs($ts,$log."\r\n"); fclose($ts); }
相关文章推荐
- PHP之SQL防注入代码(360提供)
- 最近sql注入数据库被更改泛滥,以下提供一个.net程序防止sql注入的方法
- 360提供的Php防注入代码
- asp下的风讯用的SQL通用防注入模块提供了
- 最近sql注入数据库被更改泛滥,以下提供一个.net程序防止sql注入的方法
- asp下的风讯用的SQL通用防注入模块提供了
- 最近sql注入数据库被更改泛滥,以下提供一个.net程序防止sql注入的方法
- 360提供的php防注入代码
- ASP中SQL不完全思路与防注入程序
- Microsoft SQL Server 2000在复制的时候包含两个过程,攻击者可以操作输入提供恶意参数给存储过程,可导致执行任意命令。
- SQL Server .NET Framework 数据提供程序连接池
- SQL Server .NET Framework 数据提供程序连接池
- Remote Library远程注入库,提供接口,完成注入,运行
- SQL不完全思路与防注入程序
- ASP 防 SQL 注入攻击通用程序
- SQL Server应用程序中的高级SQL注入
- 防止"SQL的注入攻击"
- VS 2005中提供了显示SQL Server Report Service报表的控件:Report Viewer
- 如何利用Sql 注入遍历目录
- 利用 SQL 注入修改目录权限