0

複数の SQL インジェクションのリスクがある古いシステムで作業しています。この問題をまとめて防ぐために、すべて$_POST$_GETデータをエスケープしたいと思います。問題は、スクリプト自体もエスケープすることです。文字列が既にエスケープされているかどうかを検出できるかどうか疑問に思っています。

他のソリューションも大歓迎です。

ありがとう!

4

1 に答える 1

2

残念ながら、とにかく保護は得られません。
なぜなら、php の人々の幅広い誤解にもかかわらず、

エスケープ != 保護

magic_quotes実際、インジェクションから保護するのに非効率的であることが判明した悪名高い機能に相当する自家製のものを実装しようとしています。

したがって、一部のデータが二重にエスケープされ、他のデータはエスケープしても安全ではありません (エスケープ != 安全のため)。

残念ながら、そのような「魔法の杖」スタイルのソリューションは決して機能しません。
特定のクエリを保護して、コードをリファクタリングする必要があります。それが唯一の方法です。

覚えておいてください - エスケープは保護の同義語ではありません。それは一連の規則全体の一部にすぎません

于 2012-04-24T11:12:45.160 に答える