正規表現で困っています。
クエリ文字列で preg_match を使用しようとしています。'または`の間にあり、シーケンスと 2 つの記号の間に任意の数の文字がある大文字と小文字 (?i) に関係なく、ドロップまたは切り捨てのシーケンスを除外したいが、これらの 2 つの単語のいずれかをキャッチしたいは 2 つの記号の間にありません。
まだ推測していない場合は、入力が DROP | を試みているかどうかを検出したいと思います。何でも TRUNCATE しますが、悪意のない入力からそれらの単語を除外せずにそれを行う簡単な方法はありません。
例えば
これがトリガーされないようにしたい:
SELECT * FROM `drop`
SELECT * FROM 'drop_truncate' -- drop drop
しかし、これはトリガーします:
DROP TABLE `users`
編集:私の質問は正規表現に関するもので、データベースのセキュリティに関する回答を受け取りました。間違いなく、誤解を招いて申し訳ありません! いいえ、ここではデータベースのセキュリティについては気にしません。ここでは、ドロップまたはトランケートを使用する意図を確認し、それをどこかに記録することだけが目的でした。はぁ