当前位置: 首页 > 知识库问答 >
问题:

与"安全文件处理"相关的SonarQube bug

鲜于海
2023-03-14

对我的java项目执行sonarQube分析时引发以下错误:“确保此处的文件处理是安全的”

引发此错误的代码行包括:

final String filePath = "<<dummy_file_path>>";

File file = new File(filePath);

我将包含filePath的变量名声明为final,因此无法对其进行修改。另外,我从属性文件中读取filePath变量值,并避免对其进行硬编码。但仍然会抛出相同的错误。

我希望对上述指定的代码段进行修复,以便在sonarQube分析之后,不会抛出错误以进行安全的文件处理。

提前感谢。


共有1个答案

夏谦
2023-03-14

这实际上不是一个bug,与是否是final无关。这是来自owasp(开放式Web应用程序安全项目)的一条安全规则,规定您不应直接使用来自应用程序外部的String路径访问文件系统。

现在你可以问问自己,你的应用程序是否需要安全规则。例如,一次运行应用程序-然后我将为您的项目禁用OWASP规则。另一种选择是在源代码中禁用此规则。

请在此处阅读有关此规则的更多信息:https://rules.sonarsource.com/java/tag/owasp/RSPEC-4797

 类似资料:
  • 11.4 文件的格式化与相关处理 接下来让我们来将文件进行一些简单的编排吧!下面这些动作可以将你的讯息进行排版的动作, 不需要重新以 vim 去编辑,通过数据流重导向配合下面介绍的 printf 功能,以及 awk 指令, 就可以让你的讯息以你想要的模样来输出了!试看看吧! 11.4.1 格式化打印: printf 在很多时候,我们可能需要将自己的数据给他格式化输出的! 举例来说,考试卷分数的输出

  • 1、HBase版本hbase-0.20.5,Hadoop的版本hadoop-0.20.2,JDK1.6 2、在HBase中创建了表,如果想通过控制台使用命令写入含有汉字的数据,录入是不成功的。 3、如果想对汉字进行录入,可以通过代码实现,这里我使用的是java,代码如下: /** * 向指定的表插入单个Put对象 * * @param tablename * @param

  • 当到达脚本尾部或出现了未能捕捉到的异常时,Ruby会结束程序(当调用函数exit、abort或对主线程发出Thread.kill命令时,会引发SystemExit异常)。结束程序时会依次进行下列处理。 对所有线程执行Thread.kill。 若注册了Ruby的伪信号SIGEXIT的处理程序的话,就执行它(请参考trap)。 若注册了END块(END {...}或at_end函数指定的块)的话,就以

  • 本文向大家介绍Android网络连接判断与相关处理,包括了Android网络连接判断与相关处理的使用技巧和注意事项,需要的朋友参考一下 本文为大家分享了Android网络连接判断与相关处理,供大家参考,具体内容如下 获取网络信息需要在AndroidManifest.xml文件中加入相应的权限。  <uses-permission android:name="android.permission.A

  • 4.2.4注销处理 logout元素通过导航到特定URL添加了对注销的支持。默认的注销URL是/logout,但是您可以使用logout-url属性将其设置为其他内容。有关其他可用属性的更多信息可以在命名空间附录中找到。 但是,在遵循文档中的安全设置后,URL/logout不会显示注销页面。相反,它显示 Spring Framework 4.1.6 Spring Security 4.0.0 we

  • 在了解了Linux文件管理背景知识之后, 我们可以学习一些命令来管理我们的文件。 文件操作相关 有一些命令可以帮助我们"修剪"之前看到的文件树。 $touch a.txt 如果a.txt不存在,生成一个新的空文档a.txt。如果a.txt存在,那么只更改该文档的时间信息。(这个命令实际上用得并不广泛,但可以帮我们创建一个空文件来实验下面操作) $ls . 是list的简写,列出当前目录下的所有文件