问题描述
- preparedstatement为什么比statement安全
-
preparedstatement对sql语句进行预编译,所以安全,而statement可能会有恶意sql语句的情况,就是检查登录username userpassword后跟 or 1=1这样的恶意sql语句,请问这个预编译为什么安全
解决方案
预编译不是拼接字符串,所以没有sql注入的风险。拼接sql的问题是,你的参数和sql语句体本身分不出来。如果username是
abc' or '1' = '1
拼接上你外面的sql,就构成了一个含义不同的sql语句。
而preparedstatement直接把参数代入编译,而不是让数据库去解析sql中的参数,就没有这个问题。
解决方案二:
因为后者在编写SQL语句的时候会牵涉到引号的问题,导致很容易出错,而前者只需要对应好占位符,最后更新就可以了,简单,方便,又安全。希望能帮到你
解决方案三:
preparedStatement和Statement
PreparedStatement 和 Statement
preparedStatement和Statement 有什么不一样
时间: 2024-10-31 20:23:24