gpt4 book ai didi

java - 保护静态 SQL 查询免遭 SQL 注入(inject)

转载 作者:行者123 更新时间:2023-11-29 12:15:05 25 4
gpt4 key购买 nike

我有一个应用程序,可以读取数千个包含数据库参数和静态 SQL 语句的平面文件。在我的 java 代码中,我获取 SQL 语句并执行它。由于可能存在 SQL 注入(inject)漏洞,Fortify 无法接受这种情况。例如我的平面文件如下所示:

query: SELECT USER_ID FROM SOME_TABLE WHERE ID='2'

我接受查询并执行它。

我的问题是如何使此类静态 SQL 安全?有没有办法将这些SQL转换成PreparedStatements?

最佳答案

如果您不根据用户输入更改从文件中读取的 SQL 语句,则不会发生 SQL 注入(inject)。

另一方面,如果您不能严格控制该文件中的内容(谁可以编辑它?),那么整个程序就是一个巨大的 SQL 注入(inject)器。

即使没有绑定(bind)参数,您也可以通过使用PreparedStatement 让您的代码审查工具满意。这当然不会以任何方式提高安全性。

关于java - 保护静态 SQL 查询免遭 SQL 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29960242/

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