您的位置 » 首页 » 安全运营,编程开发 » 安全防护:PHP安全辅助小脚本 最简单的代码级网站防护脚本

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

发表于4年前 | 作者: seay | 分类: 安全运营, 编程开发 | 孵化于:2013年07月23日 | 文章热度:6,615 次 全屏阅读

显示不全请点击全屏阅读

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); 
} 
?>

Tags:

phpids,

如果您喜欢我的博客,欢迎点击图片定订阅到邮箱填写您的邮件地址,订阅我们的精彩内容: 也可以点击链接【订阅到鲜果】

如果我的想法或工具帮助到了你,也可微信扫下方二维码打赏本人一杯咖啡


来自 Seay互联网安全博客
本文地址:http://www.cnseay.com/3220/
文章版权说明请看置顶文章,尊重作者,转载请以链接形式标明原文地址

马上分享给你的朋友吧~

已经有2个筒子的人留下了脚印...

  • qq1433 说:
    1楼
    2013 年 7 月 23 日 上午 9:01 回复

    第一个来顶的 谢谢分享 拿走 测试下

  • 7654321 说:
    2楼
    2014 年 9 月 19 日 下午 3:40 回复

    不错!收藏了~ :smile:

发表评论

你的大名(必填)

你的邮箱(必填)

评论内容(必填)