ホームページ 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のクリックハイジャックを防ぐ方法

03 Mar 2025

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

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

31 Dec 2024

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

SQLインジェクション攻撃を防ぐための仕様とツールの推奨事項 SQLインジェクション攻撃を防ぐための仕様とツールの推奨事項

08 Apr 2025

SQLインジェクション:ゆりかごの中での殺害は、一見シンプルなデータベースクエリがシステム全体を破壊するのに十分なリスクを隠すと思ったことがありますか?コードに深く潜んでいるこの古い相手は、あなたの過失を待っています。この記事では、SQL注入を効果的に防止し、アプリケーションを破壊しない方法について説明しましょう。それを読んだ後、安全なコードを書くスキルを習得し、SQLインジェクションを簡単に処理するのに役立ついくつかの強力なツールを学びます。基本から始めましょう。 SQLインジェクションの本質は、攻撃者が悪意のあるSQLステートメントを使用してプログラムロジックをバイパスし、データベースを直接操作することです。ユーザー情報を照会し、攻撃者によってOr1 = 1に挿入されたはずのステートメントを想像してください。結果は何ですか?すべてのユーザー情報が公開されています

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

30 Nov 2024

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

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

16 Mar 2025

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

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

13 Jun 2016

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

See all articles