【发布时间】:2014-06-23 23:56:25
【问题描述】:
我想禁止 spring webapp(在 tomcat 中运行)使用任何包含“..”的文件路径。
显然,首先要做的是在用户信息在文件路径中使用之前进行清理。但是,应用程序中有数百个地方进行文件访问,手动验证所有地方是否都正确实现需要花费大量精力。
我只想做一些事情,比如添加或修改 Java SecurityManager 以防止文件名中包含“..”。
我的第一次尝试是创建自己的 SecurityManager 并覆盖 checkRead 和 checkWrite 等方法,但事实证明这还不够。方法的默认实现似乎不允许一切,所以我怀疑从头开始创建一个并不是它应该完成的方式。
我认为另一种可能性是使用 aspectj,但如果我能让 SecurityManager 工作,这似乎是一个更好的主意。
那么,我能做的最简单的事情是在所有文件名中禁止“..”吗?是否有任何我可以安装和使用的 SecurityManager 实现来提高 web 应用程序的安全性?
【问题讨论】:
-
我认为安全管理器无法做到这一点。它将检查规范化路径上的文件权限。然而这实际上更好,无论有人如何尝试访问文件,只有在正确的位置才会被允许。
标签: java spring tomcat securitymanager