2008-09-28 71 views

回答

14

如果你的意思是,你如何确保用户输入无法在SQL注入攻击可以使用,做到这一点的方法(和所有SQL应该在JDBC写的方式)是使用预处理语句。 JDBC将自动处理任何必要的转义。

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

+0

+1:始终使用绑定变量! “转义”输入是组装动态SQL语句愚蠢的原​​因很多。 – 2008-09-28 13:06:23

+0

可怜的小伙似乎受到了PHP的污染.... – skaffman 2008-09-28 13:16:54

0

只是为了通过@skaffman添加到建议,用预处理解决这一问题,为广大的应用。但是,有些应用程序会从用户输入(例如,包含ORDER BY子句的URL参数)中获取(部分)SQL语句(而不仅仅是参数值)。只要确保你对这些设备进行了消毒,或者更好的是,尽可能避免这种设计。

相关问题