Java 规范路径安全

Java canonical path security

我正在研究 Android 安全漏洞,由于正在使用 Java,因此还需要解决该语言中的攻击问题。

我正在学习 this link

我对 Linux 中的规范路径、绝对路径和相对路径有一个清晰的认识。但是这个声明:

However, the user can still specify a file outside the intended directory by entering an argument that contains ../ sequences

我知道 .. 指的是文件所在的当前目录的父级,但无法理解攻击者如何最终使用 .. 来制作不存在的恶意文件路径/img/目录的一部分(文中提到),依然能够成功。我正在寻找任何可能利用此漏洞并通过安全检查的示例。任何帮助将不胜感激。

假设您有一些配置允许执行 /path/to/safe/directory/ 中的程序。用户可以指定他们想要的程序,例如在您的安全目录中找到的 nice1。但是,如果用户指定了一个程序,如 ../../totally/evil/nasty 怎么办?如果程序名没有检查 .. 个字符,你可以结束执行程序 /path/to/totally/evil/nasty.

消息是您必须清理用户输入以确保它不会破坏您的安全策略。