缺少sql注入攻击是否有错误?

时间:2012-02-05 14:23:07

标签: prepared-statement parameterized-query

如果我们使用最安全的方式执行查询(如准备语句或参数化查询)以防止SQL注入攻击,是否可以保证在执行时不会出现任何数据库错误? 例如,在插入记录时为给定类型发送无效参数,导致错误而不是使用默认值。你能举个例子吗?

3 个答案:

答案 0 :(得分:0)

这取决于你正在使用的数据库,但是一般来说,根据类型等发生的转换通常都是隐式的,所以你很可能传入可能在运行时失败的字符串转换为正确的值。

就SQL注入攻击而言,只要你不希望参数包含动态调用的SQL,你就是安全的。

答案 1 :(得分:0)

不能保证某些运行时错误(如果没有别的话,请“触发”)将会消失。

答案 2 :(得分:0)

参数化查询不能阻止数据库错误的一个例子是用户可以提供输入,只要它不适合数据库类型,例如在用户名字段中限制为50个字符的100,000字文章。

此外,参数化查询无法防止重复的主键错误,例如,他们已经在注册表单上请求的用户名。

参数化查询仅确保值不被解释为SQL,它不会阻止任何其他形式的错误(例如SQL语句因数据库磁盘空间不足而失败)< / p>