gpt4 book ai didi

java - 修复路径操作错误

转载 作者:行者123 更新时间:2023-11-30 06:31:19 24 4
gpt4 key购买 nike

Fortify 在进行新文件(路径)比较的行上出现路径操作错误。我正在使用 Struts 2。

谁能告诉我如何解决这个问题,这样 fortify 就不会出现这个错误?

private boolean filePresent(String fileName) {
if (fileName != null) {
String path = getDirPath();
if (path != null) {
path = path.endsWith("/") ? path : path + "/";
path = path + fileName;
if (new File(path).exists()) {
setFileName(fileName);
return true;
}
}
}
return false;
}

我需要查看该文件是否存在于我们的 Web 服务器中,因此我将文件名作为参数传递,从 web.xml 获取整个目录路径,将其附加到文件名,然后组成路径& 根据 File 对象检查它是否存在。

最佳答案

您不希望远程网络用户查看 C:/Windows/System32 是否存在,或者/etc/hosts 是否存在,因为这允许他们对您的服务器进行取证研究。

您可能没有意识到您的函数允许他们这样做,方法是在输入字符串中包含适当数量的“..”序列。

有两种方法可以解决这个问题:

  1. 白名单方法。删除输入参数中的所有字符,只允许使用“a”到“z”,也许还有“.”。如果输入超出这些范围,则抛出异常。

1a.或者,如果您知道有效文件列表少于 20,只需将它们列出来,如果输入不完全匹配,则抛出异常。

  1. 黑名单方法。检查输入,如果它包含任何序列“..”或任何正斜杠或反斜杠,则抛出异常。这通常不是纵深防御,但对于我现在阅读的功能而言,这没问题。

关于java - 修复路径操作错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9745896/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com