SQL注入预防方法

时间:2017-07-12 17:34:30

标签: sql postgresql security sql-injection

如果我围绕sql语句包含解释,即

explain ( [arbitrary sql string] )

我应该能够阻止createdroptruncatedelete命令的注入正确吗?

我只是在postgres上尝试了这个并且它似乎有效,但我不知道是否有一个我忘了的角落案例。

2 个答案:

答案 0 :(得分:7)

不。它不会起作用。你仍然可以得到这样的东西:

Explain( select columns from table where value = '');injected sql here --)

您所做的就是让攻击者做一些额外的工作,以确定除了通常的单引号外,他们还需要)字符。

如果您想阻止Sql注入,请确保始终使用参数化查询。

答案 1 :(得分:3)

一般情况下你需要:

1 /使用白名单方法验证您需要的数据。不要将字符或其他内容列入黑名单

2 /使用参数化查询

3 /不要随时使用动态查询