Web サービスがあり、A() という名前の関数を公開します。ユーザーは、パラメーターを使用してメソッドに要求を行うことができます。また、パラメータはストアド プロシージャの入力として使用されます。
たとえば、ユーザーは次の URL でリクエストを行います。
- localhost/WS?コード=こんにちは
そして、パラメーターは次のようなストアド プロシージャで使用されます。
- SELECT * FROM @コード
ただし、メソッド A() は Code 変数内の危険な文字をフィルタリングしないため、コードにはセキュリティ ホールがあります。入力をサニタイズする必要があります。
その場合、どうすれば入力をサニタイズできますか? 現在、いくつかの文字を削除しているだけですが、コードが SQL インジェクションの可能性を本当に削除するかどうかはわかりません。
あなたはなにか考えはありますか?