検索
ホームページ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

関連記事

PHP 8のクリックハイジャックを防ぐ方法PHP 8のクリックハイジャックを防ぐ方法

03Mar2025

この記事では、PHP 8アプリケーションでのクリックジャック攻撃を防ぐ方法について説明します。 X-Frame-Optionsヘッダー、コンテンツセキュリティポリシー(CSP)、および定期的なセキュリティ監査や入力検証などのその他のベストプラクティスを使用してTを緩和することを強調しています。

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

31Dec2024

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

cURL はどのように PHP での HTTP リクエストを容易にするのですか?cURL はどのように PHP での HTTP リクエストを容易にするのですか?

30Nov2024

cURL: PHP の HTTP リクエスト ハンドラー PHP 開発の分野では、「cURL」という用語が頻繁に登場します。それは図書館です...

PHP および SQL インジェクション攻撃を防ぐためのヒントPHP および SQL インジェクション攻撃を防ぐためのヒント

13Jun2016

PHP および SQL インジェクション攻撃を防ぐためのヒント。 SQL インジェクション攻撃がどのように実装されるか、そしてそれを防ぐ方法について話しましょう。 この例を見てください: コードのコピー コードは次のとおりです: // 想定される入力 $name = "ilia'; DELETE FROM users;";

2025年に知るべきトップ50のPythonライブラリ2025年に知るべきトップ50のPythonライブラリ

16Mar2025

Python:AIとデータサイエンスの未来へのゲートウェイ Pythonの比類のない汎用性と読みやすさは、データサイエンス、機械学習、人工知能の優先言語としてのステータスを固めています。 その広範な図書館のエコシス

空のチェックボックスを含む HTML フォームを送信するときに PHP で発生する「未定義のインデックス」エラーを防ぐ方法空のチェックボックスを含む HTML フォームを送信するときに PHP で発生する「未定義のインデックス」エラーを防ぐ方法

28Oct2024

空のチェックボックスを含む HTML フォームでの「未定義のインデックス」エラーを解決するチェックボックス、ラジオ グループ、またはその他を含む HTML フォームを送信する場合...

See all articles