360防跨站攻击脚本
时间:2021-07-01 10:21:17
帮助过:9人阅读
转载地址:
http://blog.qita.in/?post=275
使用方法:
require_once('360.php');
- //http://blog.qita.in
- function customError($errno, $errstr, $errfile, $errline)
- {
- echo "Error number: [$errno],error on line $errline in $errfile
"; - 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){
- //slog("
操作IP: ".$_SERVER["REMOTE_ADDR"]." 操作时间: ".strftime("%Y-%m-%d %H:%M:%S")." 操作页面:".$_SERVER["PHP_SELF"]." 提交方式: ".$_SERVER["REQUEST_METHOD"]." 提交参数: ".$StrFiltKey." 提交数据: ".$StrFiltValue); - print "360websec 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=$_SERVER["DOCUMENT_ROOT"]."/log.htm";
- $Ts=fopen($toppath,"a+");
- fputs($Ts,$logs."\r\n");
- fclose($Ts);
- }
- ?>
|