我期待为我的网站的用户提供对JAR文件中提供的一些静态资源的访问。如何在使用Class.getResource()时防止路径遍历攻击()
我无法提供用户应该能够访问所有文件的列表,但我可以保证,他们都包含在JAR的子目录中,如:
public-access/file-1
public-access/file-2
public-access/sub-dir/file-3
的文件将通过以下方式访问:
this.getClass().getResource("/public-access/" + requestedFile);
是否有推荐的方法来防止路径穿越攻击?这是为了防止恶意用户请求一个叫做例如../secret
,或sub-dir/../../secret
我正在寻找一个解决这一点。有趣的是,我不能在路径中使用“../”来制造这样的攻击。也许它正在被Java中的某个地方过滤掉。你是否设法自己执行攻击? – Zero3 2015-03-19 23:49:15