すべての ID プロバイダーが安全にユーザー情報をサニタイズできると想定できますか? それとも、アカウントまたは ID プロバイダーを作成して、悪意のあるユーザー名、電子メール、連絡先リストなどを配信できますか?
4 に答える
既存のプロバイダーの信頼性は関係ありません。攻撃者は独自のIDプロバイダーを作成し、それを使用して必要なものを送信できます。サードパーティのデータを実際に信頼してはいけません。
誰かがあなたのためにデータをサニタイズしてくれると思い込まないでください。自分で行うか、(より良い) パラメータを適切にエンコードして SQL インジェクションを防ぐ方法でデータベースに接続します。
そのような文字が許可されていなくても、仕様でそのような文字が禁止されていても、それに依存するべきではありません。
データを受け取ったら、それが期待どおりであることを確認してください。また、安全にプレイし、引数をエスケープする必要のない準備済みステートメント/パラメーター化されたクエリを常に使用するか、不可能な場合はクエリ引数をエスケープします。習慣的にこれを行うと、不快な驚きはありません。
電子メール アドレスにアポストロフィが含まれている人が何人かいますが、これは無効ではありません...問題はアポストロフィではなく、コーダーがパラメーター化されたクエリやストアド プロシージャを使用していないことです。最近では、インライン SQL を使用して文字列を連結する人は誰もいないはずです。そうすれば、ほとんどすべての SQL インジェクション攻撃を防ぐことができます。
たとえば SQL Server で動的 SQL を使用する必要がある場合は、sp_executeSQL
with parameters を使用し、 EXEC
...ではありません。