在java中设置Process对象的安全性

时间:2016-11-04 11:54:16

标签: java security web-applications

有人可以告诉我如何限制通过流程对象访问系统属性?如果我通过流程对象运行以下代码,我可以抛出安全异常。

System.getProperty("user.home");

请告诉我如何配置过程对象的证券。

在ProcessBuilder类文档中,在环境方法中写道:

  

系统可能不允许修改环境变量或者可能   禁止某些变量名称或值。

所以请告诉我如何禁止某些变量值。

更新 因此,假设我使用的是Java Web应用程序,并为客户端提供了一个代码平台。然后,如何为java Web应用程序和客户端应用程序单独配置java安全性。(因为我永远不想限制Web应用程序获取System的任何属性,而我必须限制客户端使用这些命令来应用程序漏洞)

1 个答案:

答案 0 :(得分:0)

创建自己的安全管理器并检查某些属性的访问权限

public class MySecurityManager extends SecurityManager {

@Override
public void checkPropertyAccess(String key) throws SecurityException  {
        if ( key != null && key.equals("some.forbidden_value") {
            throw new SecurityException("some message");
         }
         super.checkPropertyAccess( key );
    }
}

代码中的其他位置附加了您的安全管理器:

System.setSecurityManager( new MySecurityManager() );