mybatis是如何防止SQL注入的
SQL注入是一种很简单的攻击手段,但直到今天仍然十分常见。究其原因不外乎:No patch for stupid。为什么这么说,下面就以JAVA为例进行说明: 假设数据库中存在这样的表: table user( id varchar(20) PRIMARY KEY , name varchar(20) , age varchar(20) ); 然后使用JDBC操作表: private String getNameByUserId(String userId) { Connection conn = getConn();//获得连接 String sql = "select name from user where id=" + userId; PreparedStatement pstmt = conn.prepareStatement(sql); ResultSet rs=pstmt.executeUpdate(); ...... } 上面的代码经常被一些开发人员使用。想象这样的情况,当传入的userId参数为"3;drop table user;"时,执行的sql语句如下: select name from user where id=3; drop table user; 数据库在编译执行之后,删除了user表。瞧,一个简单的SQL注入攻击生效了!之所以这样