1

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

4

2 に答える 2

14

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

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

于 2008-09-28T11:58:44.433 に答える
0

@skaffmanによる提案に追加するだけで、PreparedStatementsはほとんどのアプリケーションの問題を解決します。ただし、SQLステートメント(の一部)が(パラメーター値だけでなく)ユーザー入力から取得されるアプリケーションもあります(たとえば、ORDER BY句を含むURLパラメーター)。それらも消毒するようにしてください。または、可能であれば、そのような設計は避けてください。

于 2008-09-28T13:09:39.753 に答える