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

如何修复强化路径操作(输入验证和表示、数据流)漏洞

陈茂
2023-03-14

我在使用新关键字创建文件时遇到了强化路径操作漏洞

在将路径传递给文件对象之前,我已尝试清理路径,但问题仍然存在。还尝试了此链接:https://www.securecoding.cert.org/confluence/display/java/FIO00-J.不要对共享目录中的文件进行操作

public static String sanitizePath(String sUnsanitized) throws URISyntaxException, EncodingException {

   String sSanitized = SAPI.encoder().canonicalize(sUnsanitized);
   return sSanitized;

}


//// the main method code snippet /////

String sSanitizedPath = Utils.sanitizePath(file.getOriginalFilename());

-- fortify scan detects problem here ..in below line --

File filePath = new File(AppInitializer.UPLOAD_LOCATION, sSanitizedPath);

String canonicalPath = filePath.getCanonicalPath();
FileOutputStream fileOutputStream = new FileOutputStream(canonicalPath);

在santisePath之后,我以为扫描不会被选中,漏洞,但是,它做到了。

共有1个答案

贝浩歌
2023-03-14

这个“sunsanized”变量来自用户输入?也许这才是你真正的问题。

永远不要相信用户输入,这是开发的首要规则。

 类似资料:
  • 我试图找到一个完整的模式列表,用于通过HTML5表单验证各种类型的输入,特别是、、等等,但我找不到任何模式。目前,这些输入验证的内置版本远非完美(甚至不检查输入的内容是否是电话号码)。所以我想知道,我可以使用哪些模式来验证用户在输入中输入了正确的格式? 以下是一些默认验证允许不允许的输入的例子: 这个字段允许在@后面有不正确域的电子邮件,它允许地址以破折号或句号开始或结束,这也是不允许的。因此,是

  • Fortify安全审查告诉我们一些路径操作漏洞。大多数都是显而易见的简单解决方案,但我不明白如何解决以下问题。 "wsdlPath"是从文本框中输入的。这是无法解决的问题吗?我可以验证路径是否存在,等等,但是这对漏洞有什么帮助呢?

  • 本文向大家介绍验证码的三个常见漏洞和修复方法,包括了验证码的三个常见漏洞和修复方法的使用技巧和注意事项,需要的朋友参考一下 把验证码存储在Cookie中 一般来说,我们会把验证码的值用Session存储起来,通过对比用户提交的验证码和Session中的验证码,就可以知道输入是否正确。由于Session会占用服务器资源,我曾经想过是否可以把验证码的值加密后存储在Cookie中。不过事实证明,这只是异

  • 在我创建了一个新的Angular 12.0.3项目后,立即检测到8个高漏洞和40个中等漏洞。 当尝试使用修复问题时,没有任何变化。将漏洞减少到9个中度漏洞和7个高度漏洞,但当我尝试运行项目时,由于版本不匹配,会显示以下错误: 我已经尝试按照此答案中描述的解决方案修复漏洞,但这破坏了项目。 此外,我使用angle-cli的v11-lts创建了一个项目,但同样的问题伴随着不同的漏洞: 有没有办法,修复

  • 这里是我的pom.xml 4.0.0 org.springframework.Boot spring-boot-starter-parent 2.3.2.release com.king Gestpeacesecurity 0.0.1-snapshot Gestpeacesecurity用于Spring Boot的和平安全项目 我的实体代理,我使用lomback作为getter和setter 这是