防止在DAO层中注入SQL

问题描述

| 假设我们在DTOObject中有数据
public void loginUser(UserDTO)
{

String name = UserDTO.getName();
String pwd = UserDTO.getpassword();
String sql  = \"select UNAME,PWD from LoginTable where uname=\'\"+name+\"\' and PWD=\'\"+pwd+\"\';
}
在这代码中告诉我,如何防止sql注入?我们如何检查恶意字符?     

解决方法

        最好的选择是将SQL从不属于DTO的DTO移至它所属的DAO,然后在其中使用PreparedStatement。     ,        这是有关在JDBC中使用ѭ1的官方教程。如果您四处搜寻,还有很多其他内容。 作为记录,我必须说我不同意这样的说法,即预准备语句的主要优点是可以(尽管不一定)将其预先发送到数据库。主要优点是参数。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...