我遇到了这样的情况: FindBugs 在我的项目中无法检测到 SQL注入。该项目包含带有gradle的多重仓库。在 PMD 的帮助下,有什么方法可以识别我?或者,如果您有其他选择,请建议我。
答案 0 :(得分:0)
SQL注入主要是漏洞。为您的登录门户和使用?id或类似名称打开的链接,我想您不需要任何工具即可用Java对其进行修补。 Sql-Injection和Blind SQL均会由于使用JDBC粗心实现代码而导致攻击。
快速解决方法是,使用 PrepareStatement 更新所有现有的数据库调用,如果您拥有ID的开放URL,则在其上应用适当的encp / decp。
答案 1 :(得分:0)
您已经添加了Find Security Bugs吗?如果不是,您应该这样做,因为它可以检测到更多的安全风险-也包括一些SQL注入风险。顺便说一句。您不应再使用FindBugs,而应使用其后继者SpotBugs-上面的插件也可以与SpotBugs一起使用。
答案 2 :(得分:0)
就这样,我们都在同一页面上
像PMD这样的工具不可能找到所有SQL注入错误。
工具可以发现一些明显错误的模式,但是通过简单地在所有代码库(使用grep或IDE)中搜索包含“ SELECT”,“ INSERT”和“ UPDATE”,并确保它们不是使用串联构建的。
PMD之类的价值不在于智能,而与之相反:它们愚蠢,笨拙的固执和坚持要避免某些模式“以防万一”。