質問: "Please enter valid email id"; //Submit this error message to the form } ``` チェックを扱うこの方法では、危険な文字インジェクションの脆弱性である、等です。用など。 、一つは "有効な電子メールIDを入力してください" に変更し、このためのソリューションは以下のように与えられた "%[email protected]%3ECIMG+SRC%3D.html%22%3E"、へ ``` "If available, use structured mechanisms that automatically enforce the separation between data and code. These mechanisms may be able to provide the relevant quoting, encoding and validation automatically, instead of relying on the developer to provide this capability at every point where output is generated" ``` 上記の解決策の説明を探しています。また、どのように私のケースでは、メールのIDのクライアント側のチェックに関しては、 のソリューションの上に適用することができますか?
回答: パラメータ化されたクエリまたはprepared statementsは、「データとコードの分離を自動的に実行するメカニズム」の例です。 separation between data and codeがない場合の問題は、ユーザーが導入したデータをコードで注入し、プログラマが考えない方法でアプリケーションを操作できることです。 「関連する引用符、エンコードおよび検証を自動的に提供する」その他のメカニズムについては、OWASP ESAPIまたはJava Spring Security Frameworkに関する情報を検索できます。 「出力が生成されるすべてのポイントでこの機能を提供するために開発者に依存する」という推奨は、おそらく人間に依存するとエラーが発生する可能性があるからです。プログラマが入力検証を逃すことを不可能にする集中APIを使用すると、より安全になります。