質問

JDBC を使用してJavaでユーザー入力をエスケープする組み込みの方法はありますか? phpバージョンの mysql_real_escape()関数に似たもの。入力を検証する最良の方法は何ですか?

役に立ちましたか?

解決

SQLインジェクション攻撃でユーザー入力を使用できないようにする方法を意味する場合、これを行う方法(およびすべてのSQLをJDBCで記述する方法)は準備済みステートメントを使用することです。 JDBCは必要なエスケープを自動的に処理します。

http://java.sun.com/docs /books/tutorial/jdbc/basics/prepared.html

他のヒント

@skaffmanによる提案に追加するだけで、PreparedStatementsは大部分のアプリケーションの問題を解決します。ただし、ユーザー入力(たとえば、ORDER BY句を含むURLパラメーター)から(一部の)SQLステートメント(パラメーター値だけではなく)が取得されるアプリケーションもあります。これらも同様にサニタイズするか、できればそのようなデザインをできるだけ避けてください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top