gpt4 book ai didi

postgresql - pl/pgsql vs prepared statements 对抗 sql 注入(inject)攻击

转载 作者:行者123 更新时间:2023-11-29 12:02:43 32 4
gpt4 key购买 nike

我在准备语句方面有更多经验,我知道它们非常适合抵御 SQL 注入(inject)攻击。

我想知道 pl/pgsql 的 format/USINGquote_literal/quote_nullable 是否同样有效,因为准备好的语句也有一些漏洞(检查herehere )。

那么,pl/pgsql 的安全性是否与准备好的语句处于同一级别?我应该考虑自己的安全并使用 format/USING/quote_literal/quote_nullable 还是我必须做更多事情才能更安全?

最佳答案

在 PL/pgSQL 中使用 USING

EXECUTE 可以 100% 安全地避免 SQL 注入(inject)。您引用的示例不相关。

只有正确地引用才安全。这就是为什么它不如使用参数。

使用 USING 的带占位符的语句被作为准备语句处理,并且提供给 USING 的参数成为准备语句的参数。参数中的文本从不作为 SQL 语句的一部分进行解析,因此 SQL 注入(inject)是不可能的。

关于postgresql - pl/pgsql vs prepared statements 对抗 sql 注入(inject)攻击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48448377/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com