1

通常の UNION ベースの SQL インジェクションは、WAF を使用してブロックできます。WAF は、 などのキーワードをフィルター処理しますUNION, SELECT/*!UNION*/しかし、次のような SQL のインライン コメント ステートメントによってバイパスできることがわかりました。/*!SELECT*/

コメント ステートメントは、読み取りのみを目的としていますね。もしそうなら、SQL サーバーはどのようにコメント内のインジェクション クエリを読み取り、それを実行しますか?

4

3 に答える 3

1

WAF でキーワードをフィルタリングしても意味がありません。それが成功する可能性はありません。これを回避する方法のリストを見てみましょう: http://ferruh.mavituna.com/sql-injection-cheatsheet-oku/ (Google で数秒でそのリンクを見つけました。)

コードが正しく記述されていれば、その必要はありません。

あなたの質問に関しては、MySQL の/*!構文は MySQL 固有のコマンド用です。これは、移植可能な SQL (任意のデータベースで実行できる) を記述しながら、MySQL の特別なコマンドを送信できるようにすることを目的としています。

于 2012-09-13T05:43:39.567 に答える
0

データのプレースホルダーをサポートするデータベースドライバーを使用している場合は、SQLインジェクションはまったく問題になりません。ガラガラたたきでゴキブリの侵入を根絶しようとするように、事後検出でやろうとしていることは無駄です。あなたはおそらくそれらすべてを手に入れることはできません。

ベストプラクティスは、そもそも敵対的なデータをクエリに挿入できないようにすることです。これを適切に行う方法を示す、BoobyTablesで利用可能な多くの例があります。

于 2012-09-13T05:52:19.153 に答える