<?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
関連記事
31 Dec 2024
文字列エスケープとは何ですか?なぜ重要ですか?文字列エスケープは、引用符やその他の特殊な用途の使用目的を明確にするために使用されるテクニックです。
11 Jan 2025
iTextSharp でテキストの書式設定を行うにはどうすればよいですか?はい、iTextSharp でテキストの書式設定を行うことができます。図書館では次のようなサービスを提供しています...
27 Dec 2024
プレーン JavaScript のテキストから HTML タグを削除する文字列から HTML タグを削除することは、Web 開発における一般的なタスクです。図書館もあるのに…
27 Dec 2024
mysql_real_escape_string() は SQL インジェクション防止に十分ですか?mysql_real_escape_string() を採用することで安全策が得られると多くの人が信じています...
12 Jan 2025
リンクgithub: https://github.com/hoangtien2k3/reactify-core 1. 図書館の概要 このライブラリは、リアクティブ プログラミングをサポートする 2 つの強力なツールである Spring WebFlux と Reactor-Core のコア コンポーネントに基づいて構築されています。このライブラリを使用すると、
31 Dec 2024
SQLインジェクション これは、データベース管理言語として SQL (構造化照会言語) を使用するデータベース システムに対する一般的なセキュリティ攻撃です。この攻撃は、攻撃者がフィールドなどのユーザー入力フィールドに悪意のある SQL コードを挿入することによって引き起こされます。
ホットツール Tags
Hot Tools
依存関係注入コンテナー用の PHP ライブラリ
依存関係注入コンテナー用の PHP ライブラリ
50 個の優れた古典的な PHP アルゴリズムのコレクション
古典的な PHP アルゴリズム、優れたアイデアを学び、思考を広げます
画像を最適化するための小さな PHP ライブラリ
画像を最適化するための小さな PHP ライブラリ