java

时间:2017-06-02 05:24:29

标签: java

我正在处理源代码中的一些覆盖问题。我在这里使用     代码如,

    filePath = properties.getProperty("DO.LIB.LOC");
    String fileName = (String) request.getParameter("read");
    filePath += "/" + fileName;
    downloadResultSet.flushFile(filePath, response, 
    fileName.substring(fileName.lastIndexOf(".") + 1));
  

在我的coveiry扫描工具中发现了一个错误,如“CID 38762(#1 of 2):   文件系统路径,文件名或URI操作(PATH_MANIPULATION)   2. sink:使用污染值filePath构造路径或URI。这可能允许攻击者访问,修改或测试存在   关键或敏感文件。该值使用不安全   字节码,无法显示。“

在外部属性文件和文件名中定义的文件路径来自   要求。

我在不同的java文件中使用相同的代码进行文件上传,删除    ,下载功能。我怎样才能避免这些漏洞    从我的代码。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

您应该使用Path类型而不是String (https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/file/Path.html

它看起来像这样:

 Path path = Paths.get(properties.getProperty("DO.LIB.LOC"));
 path = path.resolve(Paths.get(request.getParameter("read")));