1. ホーム
  2. java

[解決済み] PreparedStatementはどのようにSQLインジェクションを回避または防止するのですか?

2022-05-15 07:53:38

質問

PreparedStatementsがSQLインジェクションを回避/防止することは知っています。これはどのように行われるのですか?PreparedStatementsを使用して構築された最終的なフォームクエリは、文字列またはそれ以外のものになるのでしょうか?

どのように解決するのですか?

SQLインジェクションの問題は、ユーザー入力がSQL文の一部として使用されることです。プリペアド ステートメントを使用することで、ユーザー入力を (SQL コマンドの一部としてではなく) パラメータのコンテンツとして処理するように強制することができます。

しかし、もしユーザ入力をプリペアドステートメントのパラメータとして使用せず、代わりに文字列を結合してSQLコマンドを構築した場合 SQL インジェクションに対してまだ脆弱です。 となります。