ホームページ > バックエンド開発 > PHPチュートリアル > 360 によって提供される PHP アンチインジェクション コード

360 によって提供される PHP アンチインジェクション コード

WBOY
リリース: 2016-07-25 08:43:07
オリジナル
1147 人が閲覧しました
  1. //Code By Safe3
  2. functioncustomError($errno, $errstr, $errfile, $errline)
  3. {
  4. echo "エラー番号: [$errno ]、$errfile の $errline 行でエラーが発生しました
    " ;
  5. 死ぬ();
  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|(選択|削除).+?FROM|(作成|変更|ドロップ|TRUNCATE)\s+ (テーブル|データベース)" ;
  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|(選択|削除).+?FROM|(作成|変更|ドロップ|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|(選択|削除).+?FROM|(作成|変更|ドロップ|TRUNCATE)\s+(TABLE|DATABASE)" ;
  11. 関数 Stop Attack($StrFiltKey,$StrFiltValue,$ArrFiltReq){
  12. if(is_array($StrFiltValue))
  13. {
  14. $StrFiltValue=implode($StrFiltValue);
  15. }
  16. if (preg_match("/".$ArrFiltReq."/is",$StrFiltValue)==1){
  17. //slog("

    operIP: ".$_SERVER[" REMOTE_ADDR"]."
    操作時間: ".strftime("%Y-%m-%d %H:%M:%S")."
    操作面:".$_SERVER[" PHP_SELF"]."
    提交方法: ".$_SERVER["REQUEST_METHOD"]."
    提交パラメータ: ".$StrFiltKey."
    提交データ: ".$StrFiltValue);
  18. 「360websec 注意:不正な操作です!」を印刷します。 ;
  19. exit();
  20. }
  21. }
  22. //$ArrPGC=array_merge($_GET,$_POST,$_COOKIE);
  23. foreach($_GET as $key=>$value){
  24. Stop Attack($key,$value,$getfilter);
  25. }
  26. foreach($_POST as $key=>$value){
  27. Stop Attack($key,$value,$postfilter);
  28. }
  29. foreach($_COOKIE as $key=>$value){
  30. Stop Attack($key,$value,$cookiefilter);
  31. }
  32. /*
  33. if (file_exists('update360.php')) {
  34. echo "请重命名文件update360.php,黑客利用防止
    ";
  35. 死ぬ();
  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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート