当前位置:  开发笔记 > 编程语言 > 正文

Findbugs没有发现潜在的SQL注入漏洞

如何解决《Findbugs没有发现潜在的SQL注入漏洞》经验,为你挑选了0个好方法。

我刚安装了Eclipse的FindBugs插件,希望它能帮助我在代码中找到SQL注入漏洞.然而,它似乎没有找到任何东西,即使我故意放入一些.

在以下示例中,假设staticFinalBaseQuery声明如下:

public static final String staticFinalBaseQuery ="SELECT foo FROM table where id ='";

并假设userInputfilterString是包装示例代码段的方法的参数.它直接来自用户输入,并且没有消毒.

例如,以下代码段不会触发警告:

String query = staticFinalBaseQuery + userInputfilterString;
pstmt = dbConnection.prepareStatement(query);

staticFinalBaseQuery静态最终字符串在哪里,并且userInputfilterString是直接来自用户输入的字符串,仅在运行时可用,根本不擦除.显然,这是一个漏洞.

我希望触发" 准备好的语句是从非常量String生成的 "警告.

以下代码段也不会引发警告(这并不奇怪,因为这些代码的编译形式可能相同):

pstmt = dbConnection.prepareStatement(staticFinalBaseQuery + userInputfilterString);

但是,这会引起警告:

pstmt = dbConnection.prepareStatement(staticFinalBaseQuery + userInputfilterString + "'");

如果我追加空字符串或空格,则不会触发警告.

所以,我的问题是,如何让我的第一个例子触发FindBugs?我也好奇为什么第一个不会引起警告,但最后一个呢?

提前致谢!

编辑:我向 FindBugs的bug跟踪系统提交了一个错误,因为它似乎可能是一个错误.但是,如果有人有任何提示,我很乐意听到他们的意见.

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有