0

您能否推荐一个关于标准 Java SecurityManager 的重要策略文件的良好介绍?

是否有超出 Java 网站提供的示例?或者也许有人描述了如何保护运行大量不同 Web 应用程序的 Tomcat?

[编辑] 我的用例是一个可以运行由三种类型的用户编写的脚本的应用程序:1. 应用程序开发人员,2. 应用程序管理员和 3. 最终用户。

第 1 组的用户需要能够访问几乎任何资源(= 不需要特殊的 SM)。

第 2 组可以信任,但我们希望保护他们免受愚蠢的错误(例如 call System.exit)。

第 3 组不可信任。他们通常只写小脚本。

当我运行一个脚本时,我知道它来自哪里。策略文件会帮助我的用例还是我需要编写自己的 SecurityManager?

4

1 回答 1

0

你真的看过 SecurityManager 上可用的方法吗?

  • 它(SecurityManager)怎么可能回答特定用户是否可以执行特定操作?
    • 它无法知道用户正在尝试什么(操作)
    • 它无法知道用户正在尝试对什么数据(事物)进行操作。

警察文件只适用于需要一些安全约束的资源,这些安全约束可以用短文本形式表示,并且在 jvm 运行时不会更改。像下面这样的东西:

  • 只能从 hardrive/path/to/file 读取。
  • 只能读取系统属性 X
  • 只能打开端口上的套接字...

您的 q 实际上并没有说明您希望测试的对象以及他们可能执行的操作。如果您正在尝试保护页面(想想 url),那么您可能需要考虑像 Spring Security 这样的东西,它允许您说以下内容:

  • 对于 url "/crash-computer" 只允许角色 "nasty" 的用户执行此操作
  • 只有角色“admin”的用户可以访问“/admin/*”等

您将需要添加自己的自定义逻辑来执行诸如只有创建 X 的用户或超级用户才能更新 X 的操作。

于 2011-02-08T15:01:08.733 回答