4

我希望为我的网站用户提供对 JAR 文件中提供的一些静态资源的访问权限。

我无法提供用户应该能够访问的所有文件的列表,但我可以确保它们都包含在 JAR 的子目录中,例如:

public-access/file-1
public-access/file-2
public-access/sub-dir/file-3

然后将通过以下方式访问这些文件:

this.getClass().getResource("/public-access/" + requestedFile);

有没有推荐的方法来防止路径遍历攻击?这是为了防止恶意用户请求名为 eg 的文件../secret,或sub-dir/../../secret

4

2 回答 2

1

您需要通过覆盖 SecurityManager来定义自定义安全策略。查看本教程,它很好地解释了如何创建和注册。

提供您自己的安全管理器

希望这可以帮助

于 2013-02-21T09:43:52.873 回答
1

看看安全管理器:http ://docs.oracle.com/javase/tutorial/essential/environment/security.html

我认为它完全支持您所需要的,只需指定不允许打开给定路径的资源即可。

于 2013-02-21T09:21:49.277 回答