ホームページ 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 チュートリアル

13 Jul 2016

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

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

25 Jul 2016

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

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

21 Jun 2023

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

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

13 Jun 2016

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

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

29 Jul 2016

図書館管理システムの使用例図: 図書館管理システムの使用例図 図書館管理プログラム (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 チュートリアル

13 Jul 2016

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

See all articles