51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

安全防护:PHP安全辅助小脚本 最简单的代码级网

Safe3写的一个PHP安全辅助的一个小脚本,主要是做数据全局过滤的,之前看到360也用到这么一个脚本。小巧实用,推荐下。

使用方法:把这段代码保存为safe.php 然后在任意一个全局文件包含以下这个文件,比如数据库配置文件等

<?php 
//Code By Safe3 
function customError($errno, $errstr, $errfile, $errline) 
{ 
 echo "<b>Error number:</b> [$errno],error on line $errline in $errfile<br />"; 
 die(); 
} 
set_error_handler("customError",E_ERROR); 
$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)"; 
$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)"; 
$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)"; 
function StopAttack($StrFiltKey,$StrFiltValue,$ArrFiltReq){ 
   
if(is_array($StrFiltValue)) 
{ 
 $StrFiltValue=implode($StrFiltValue); 
} 
if (preg_match("/".$ArrFiltReq."/is",$StrFiltValue)==1&&!isset($_REQUEST['securityToken'])){ 
 slog("<br><br>操作IP: ".$_SERVER["REMOTE_ADDR"]."<br>操作时间: ".strftime("%Y-%m-%d %H:%M:%S")."<br>操作页面:".$_SERVER["PHP_SELF"]."<br>提交方式: ".$_SERVER["REQUEST_METHOD"]."<br>提交参数: ".$StrFiltKey."<br>提交数据: ".$StrFiltValue); 
 print "result notice:Illegal operation!"; 
 exit(); 
} 
} 
//$ArrPGC=array_merge($_GET,$_POST,$_COOKIE); 
foreach($_GET as $key=>$value){ 
 StopAttack($key,$value,$getfilter); 
} 
foreach($_POST as $key=>$value){ 
 StopAttack($key,$value,$postfilter); 
} 
foreach($_COOKIE as $key=>$value){ 
 StopAttack($key,$value,$cookiefilter); 
} 
   
function slog($logs) 
{ 
 $toppath="zc_hack_log.htm"; 
 $Ts=fopen($toppath,"a+"); 
 fputs($Ts,$logs."\r\n"); 
 fclose($Ts); 
} 
?>
赞(4)
未经允许不得转载:工具盒子 » 安全防护:PHP安全辅助小脚本 最简单的代码级网