> 백엔드 개발 > PHP 튜토리얼 > 360에서 제공하는 PHP 안티인젝션 코드

360에서 제공하는 PHP 안티인젝션 코드

WBOY
풀어 주다: 2016-07-25 08:43:07
원래의
1148명이 탐색했습니다.
  1. //Code By Safe3
  2. function customError($errno, $errstr, $errfile, $errline)
  3. {
  4. echo "Error number: [$errno],error on line $errline in $errfile
    " ;
  5. die();
  6. }
  7. set_error_handler("customError",E_ERROR);
  8. $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)" ;
  9. $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)" ;
  10. $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)" ;
  11. function StopAttack($StrFiltKey,$StrFiltValue,$ArrFiltReq){
  12. if(is_array($StrFiltValue))
  13. {
  14. $StrFiltValue=implode($StrFiltValue);
  15. }
  16. if (preg_match("/".$ArrFiltReq."/is",$StrFiltValue)==1){
  17. //slog("

    操作IP: ".$_SERVER["REMOTE_ADDR"]."
    操作时间: ".strftime("%Y-%m-%d %H:%M:%S")."
    操作页面:".$_SERVER["PHP_SELF"]."
    提交方式: ".$_SERVER["REQUEST_METHOD"]."
    提交参数: ".$StrFiltKey."
    提交数据: ".$StrFiltValue);
  18. print "360websec notice:Illegal operation!" ;
  19. exit();
  20. }
  21. }
  22. //$ArrPGC=array_merge($_GET,$_POST,$_COOKIE);
  23. foreach($_GET as $key=>$value){
  24. StopAttack($key,$value,$getfilter);
  25. }
  26. foreach($_POST as $key=>$value){
  27. StopAttack($key,$value,$postfilter);
  28. }
  29. foreach($_COOKIE as $key=>$value){
  30. StopAttack($key,$value,$cookiefilter);
  31. }
  32. /*
  33. if (file_exists('update360.php')) {
  34. echo "请重命名文件update360.php,防止黑客利用
    ";
  35. die();
  36. }
  37. */
  38. function slog($logs)
  39. {
  40. $toppath=$_SERVER["DOCUMENT_ROOT"]."/log.htm";
  41. $Ts=fopen($toppath,"a ");
  42. fputs($Ts,$logs."rn");
  43. fclose($Ts);
  44. }
复制代码

PHP


원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿