我对准备好的语句有更多的经验,我知道它们对SQL注入攻击非常有用。
我想知道pl / pgsql的format/USING
和quote_literal/quote_nullable
是否同样有效,因为预准备语句也有一些漏洞(检查here和{{3} })。
format/USING
/ quote_literal/quote_nullable
或者我必须做得更多,以便更安全?
答案 0 :(得分:3)
EXECUTE
的 USING
对SQL注入是100%安全的。
您引用的示例不相关。
如果您正确地进行报价,则报价是安全的。这就是为什么它不如使用参数那么好。
使用USING
的占位符语句将作为预准备语句处理,并且赋予USING
的参数将成为预准备语句的参数。参数中的文本是从不解析为SQL语句的一部分,因此SQL注入是不可能的。