java - 如何修复 'Potential Path Traversal (File Read)' 的 Findbugs 安全警告

标签 java

在下面的代码片段中运行 findbugs 后,我收到了“方法 java.io.File 读取其位置由用户输入指定的文件”消息的警告。

public void removeFile(String warfileName){
    File warFile = new File(homePath + "/samples/" + warFileName + ".war");
.....
}

解决此安全问题的最佳方法是什么?

最佳答案

正如@Jeet 所指出的,页面中描述了一种解决方案。基本上,它建议使用一个框架来“规范化”用户输入,即:

File file = new File("resources/images/", image); //Weak point
File file = new File("resources/images/", FilenameUtils.getName(image)); //Fix

此解决方案的问题在于它引入了对您的项目(对 Apache Commons)的依赖。

因此,您可以尝试使用 java 7 FilesPath,而不是使用 FilenameUtils.getName。 Path#getFileName() 可能有助于修复漏洞。

关于java - 如何修复 'Potential Path Traversal (File Read)' 的 Findbugs 安全警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38119783/

相关文章:

java - 异常是如何传播的?

java - 可以在异常类中调用 System.exit()

java - Android - 应用程序仅在第一次启动时崩溃,但第二次运行

java - Spring 从哪里开始?

java - 改进的冒泡排序

java - 变量 r 可能尚未初始化

java - 使用 smack 库在 JAVA 中实现 GCM CCS (XMPP)。与 gcm.googleapis.com 的连接失败

java - 黑莓 kSoap2 和皂头

java - Firebase 返回意外值

java - 将参数传递给构造函数,替代语法