検索
ホームページ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 インジェクションを防ぐ PHP の効果的な方法_PHP チュートリアルSQL インジェクションを防ぐ PHP の効果的な方法_PHP チュートリアル

13Jul2016

PHP は SQL インジェクションを防ぐ効果的な方法です。データのセキュリティとインジェクションを防ぐために、$_GET で取得した文字列をフィルタリングする必要があります。最初はフィルタリング関数を自分で書きました。その後、PHP チュートリアルに付属しているフィルタリング関数を見つけたので、addla を追加しました。

SQLインジェクションを防ぐPHPコードSQLインジェクションを防ぐPHPコード

25Jul2016

SQLインジェクションを防ぐPHPコード

Yii フレームワークを使用して図書館 Web サイトを作成するYii フレームワークを使用して図書館 Web サイトを作成する

21Jun2023

デジタル時代の到来に伴い、図書館は徐々にデジタル変革を実現し、従来の紙ベースの管理からデジタル管理に徐々に移行しています。デジタル管理の過程で、Web サイト アプリケーションを使用して図書館を管理することは、図書館が書籍、貸出記録、ユーザー アカウント、その他の情報をより適切に管理できるため、非常に一般的な方法になりました。 Yii フレームワークを使用して図書館 Web サイトを作成することは、非常に簡単かつ効果的な方法になりました。この記事では、Yii フレームワークを使用して図書館 Web サイトを作成する方法を紹介します。 Y

図書館管理システムの認証管理者に関する質問図書館管理システムの認証管理者に関する質問

13Jun2016

図書館管理システムの管理者を確認する問題について、私はPHPの初心者で、研究書にある図書館管理システムのソースコード一式をwamp5の統合環境にインストールしました。 MYSQL の DATA フォルダーとその他の設定が完了すると、login.php インターフェイスのアカウントとパスワードが正しい場合でも、チェックログ コードを投稿するのを手伝ってください。

図書館管理システムのユースケース図 図書館管理プログラム(1)図書館管理システムのユースケース図 図書館管理プログラム(1)

29Jul2016

図書館管理システムの使用例図: 図書館管理システムの使用例図 図書館管理プログラム (1): このレベルのプログラムで使用されるデータ テーブル構造: # ------------------- --- ---------------------------------- # # データテーブル構造 'author' # CREATE TABLE author ( author_id int (6) DEFAULT '0' NOT NULL auto_increment、first_name varchar(20)

PHP で SQL インジェクション分析を防ぐ方法、php が SQL インジェクションを防ぐ_PHP チュートリアルPHP で SQL インジェクション分析を防ぐ方法、php が SQL インジェクションを防ぐ_PHP チュートリアル

13Jul2016

PHP で SQL インジェクション分析を防ぐ方法、PHP は SQL インジェクションを防ぎます。 PHP で SQL インジェクション分析を防止する方法、PHP は SQL インジェクションを防止します。 この記事では、PHP で SQL インジェクションを防止する方法を分析します。参考のためにみんなで共有してください。具体的な分析は次のとおりです。 1. 問題の説明:

See all articles