如何防止SQL注入
- 替换到查询之前,我们需要做验证。移除特殊字符如单引号,关键词像select, union...
- 使用Prepared Statement和占位符
- Prepared Statement防止sql注入的方法是ps.setString(1,user)该方法可以对所有数据可以进行校验,移除特殊字符或者转义
1 |
PreparedStatement
preparedStatement=conn.prepareStatement( ‘SELECT * FROM usercheck where
username=?‘ ) ;
|
2 |
preparedStatement.setString( 1 , user);
|
现在如果你使用sql注入 sdfssd‘ or ‘1‘=‘1 那么
1 |
SELECT * FROM User where userId= ‘sdfssd\‘ or
\‘1\‘=\‘1‘
|