1

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

4

2 回答 2

14

如果您的意思是如何确保用户输入不能用于 SQL 注入攻击,那么做到这一点的方法(以及所有 SQL 应该用 JDBC 编写的方式)是使用准备好的语句。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 回答