【发布时间】:2012-02-11 13:25:08
【问题描述】:
我们的团队希望更好地遵守 OWASP 准则,其中一项任务是防止 SQL 注入攻击。为了促进这一点,我正在寻找一种方法来自动检查我们的代码库中 java.sql.Statement 的使用情况,因此可以将其标记并更改为使用 PreparedStatement。
我们的构建过程基于 Maven,并且我们还设置了 Sonar 来对项目运行分析。如果满足某些阈值,Sonar 中已经有一些规则可以使我们的构建失败,因此可以在那里实施。我已经看到可以在哪里设置检查样式正则表达式规则以查找导入,但我想看看是否还有其他选项。
开发/构建路径上的任何位置都可以使用。如果 intellij 中有一些东西可以标记这个,maven 构建过程中有一些东西,或者在 Sonar 中标记这个的不同方式,这些都可以。
谢谢!!
【问题讨论】:
-
请注意,同样的注入攻击也可以使用准备好的语句进行:
connection.prepareStatement("select t1.* from t1 where t1.code = '" + code + "'");。最好的办法是教育开发人员。 -
我们将通过 OWASP 审核,他们将寻找更具体的项目。我同意您对此的说法,但我们也需要某种类型的自动检查层。