验证用户输入JDBC的最佳方法是什么?

时间:2008-09-28 11:55:23

标签: java mysql validation jdbc

是否有使用JDBC在java中转义用户输入的内置方法?类似于php版本mysql_real_escape()功能的东西。什么是验证输入的最佳方法?

2 个答案:

答案 0 :(得分:14)

如果您的意思是如何确保用户输入不能用于SQL注入攻击,那么执行此操作的方式(以及所有SQL应该用JDBC编写的方式)都使用Prepared Statements。 JDBC将自动处理任何必要的转义。

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

答案 1 :(得分:0)

只是为了添加@skaffman的建议,PreparedStatements解决了大多数应用程序的问题。但是,有些应用程序(部分)SQL语句(而不仅仅是参数值)来自用户输入(例如,包含ORDER BY子句的URL参数)。只要确保你消毒那些,或者更好的是,尽可能避免这样的设计。