ホームページ PHP ライブラリ その他の図書館 SQLインジェクションを防ぐPHPクラスライブラリ
SQLインジェクションを防ぐPHPクラスライブラリ
<?php
class sqlsafe {
  private $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)";
  private $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)";
  private $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)";
  public function __construct() {
    foreach($_GET as $key=>$value){$this->stopattack($key,$value,$this->getfilter);}
    foreach($_POST as $key=>$value){$this->stopattack($key,$value,$this->postfilter);}
    foreach($_COOKIE as $key=>$value){$this->stopattack($key,$value,$this->cookiefilter);}
  }
  public function stopattack($StrFiltKey, $StrFiltValue, $ArrFiltReq){
    if(is_array($StrFiltValue))$StrFiltValue = implode($StrFiltValue);
    if (preg_match("/".$ArrFiltReq."/is",$StrFiltValue) == 1){
      $this->writeslog($_SERVER["REMOTE_ADDR"]."    ".strftime("%Y-%m-%d %H:%M:%S")."    ".$_SERVER["PHP_SELF"]."    ".$_SERVER["REQUEST_METHOD"]."    ".$StrFiltKey."    ".$StrFiltValue);
      showmsg('您提交的参数非法,系统已记录您的本次操作!','',0,1);
    }
  }
  public function writeslog($log){
    $log_path = CACHE_PATH.'logs'.DIRECTORY_SEPARATOR.'sql_log.txt';
    $ts = fopen($log_path,"a+");
    fputs($ts,$log."\r\n");
    fclose($ts);
  }
}

このクラス ライブラリは、最初に関数パラメータを構築し、次にログを確認して書き込み、最後に SQL インジェクション ログを確認します。 SQL インジェクションを防ぐための非常に便利な PHP クラス ライブラリです。

免責事項

このサイトのすべてのリソースはネチズンによって提供されたもの、または主要なダウンロード サイトによって転載されたものです。ソフトウェアの整合性をご自身で確認してください。このサイトのすべてのリソースは学習の参考のみを目的としています。商業目的で使用しないでください。そうでない場合は、すべての結果に対して責任を負うことになります。侵害がある場合は、削除するためにご連絡ください。連絡先情報: admin@php.cn

関連記事

SQL インジェクションとデータ エラーを防ぐために文字列のエスケープが重要なのはなぜですか? SQL インジェクションとデータ エラーを防ぐために文字列のエスケープが重要なのはなぜですか?

31 Dec 2024

文字列エスケープとは何ですか?なぜ重要ですか?文字列エスケープは、引用符やその他の特殊な用途の使用目的を明確にするために使用されるテクニックです。

iTextSharp を使用してテキストの書式設定情報 (フォント、サイズなど) を抽出するにはどうすればよいですか? iTextSharp を使用してテキストの書式設定情報 (フォント、サイズなど) を抽出するにはどうすればよいですか?

11 Jan 2025

iTextSharp でテキストの書式設定を行うにはどうすればよいですか?はい、iTextSharp でテキストの書式設定を行うことができます。図書館では次のようなサービスを提供しています...

プレーンな JavaScript を使用してテキストから HTML タグを効率的に削除する方法 プレーンな JavaScript を使用してテキストから HTML タグを効率的に削除する方法

27 Dec 2024

プレーン JavaScript のテキストから HTML タグを削除する文字列から HTML タグを削除することは、Web 開発における一般的なタスクです。図書館もあるのに…

「mysql_real_escape_string()」は本当に SQL インジェクションを防ぐのでしょうか? 「mysql_real_escape_string()」は本当に SQL インジェクションを防ぐのでしょうか?

27 Dec 2024

mysql_real_escape_string() は SQL インジェクション防止に十分ですか?mysql_real_escape_string() を採用することで安全策が得られると多くの人が信じています...

バックエンド マイクロサービス Webflux 用 Ja​​va ライブラリの紹介 (Reactor-core) バックエンド マイクロサービス Webflux 用 Ja​​va ライブラリの紹介 (Reactor-core)

12 Jan 2025

リンクgithub: https://github.com/hoangtien2k3/reactify-core 1. 図書館の概要 このライブラリは、リアクティブ プログラミングをサポートする 2 つの強力なツールである Spring WebFlux と Reactor-Core のコア コンポーネントに基づいて構築されています。このライブラリを使用すると、

SQLインジェクションとは何ですか?そしてそれを防ぐ方法 SQLインジェクションとは何ですか?そしてそれを防ぐ方法

31 Dec 2024

SQLインジェクション これは、データベース管理言語として SQL (構造化照会言語) を使用するデータベース システムに対する一般的なセキュリティ攻撃です。この攻撃は、攻撃者がフィールドなどのユーザー入力フィールドに悪意のある SQL コードを挿入することによって引き起こされます。

See all articles