gpt4 book ai didi

sql - 执行准备好的语句的方法

转载 作者:行者123 更新时间:2023-12-04 20:19:01 26 4
gpt4 key购买 nike

我刚刚(偶然)在我正在从事的项目中偶然发现了另一个愚蠢的未清理的 SQL 注入(inject)缺陷......而且我对此感到非常厌倦。
您对如何消除此类错误的 sql 语句并在可行的情况下强制执行准备好的语句有什么建议吗?现在我更喜欢像

REVOKE DarnInlineDataStatements ON * TO xyz
这样的解决方案但由于这似乎不太可能,是否有例如用于查找这些东西的静态代码分析工具(达到一定的可靠性)?或者您还有什么建议吗?
编辑:软技能方法“请不要使用它们,(通常)有更好的方法”在过去似乎效果不太好。因此,我真的更喜欢首先阻止此类查询的东西。不是故意破坏现有代码,而是为了将来的项目,一些“没有这样的查询”解决方案;-)

最佳答案

如果将 sql 移至存储过程,则可以禁用应用程序用户的 SELECT、CREATE、ALTER、UPDATE、DELETE、DROP 等权限,仅保留 EXEC 访问权限。假设 SQL Server,但我确信 Oracle/MySQL 等允许类似的设置。

另请注意,这并不能保证准备好的语句:您仍然可以以不安全的方式调用存储过程。但是,如果您没有使用大量存储过程,它会发现任何编码不正确的地方,如果您遗漏了任何内容,那么 sql 注入(inject)攻击将很难成功。

关于sql - 执行准备好的语句的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/597277/

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