SQL注入预防方法

Eri*_*ang 0 sql security postgresql sql-injection

如果我围绕一个sql语句包装解释,即

explain ( [arbitrary sql string] )

我应该能够预防注射create,drop,truncate,delete命令是否正确?

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

Joe*_*orn 7

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

Explain( select columns from table where value = '');injected sql here --)
Run Code Online (Sandbox Code Playgroud)

你所做的就是让攻击者做一些额外的工作来弄清楚他们)除了通常的单引号外还需要这个角色.

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