Java反射框架和安全性

Jij*_*joy 6 java reflection

假设我的应用程序的外部库中有一个单例类.但我仍然可以使用反射创建该特定类的实例.像这样

    Class clas = Class.forName(Private.class.getName());

    for(Constructor c : clas.getDeclaredConstructors()){
        c.setAccessible(true);
        Private p = (Private) c.newInstance();
        System.out.println(p);
    }
Run Code Online (Sandbox Code Playgroud)

我怎么能限制这个?.

谢谢J

Mau*_*rry 6

通过使用SecurityManager和控制控件ReflectPermission("suppressAccessChecks")(示例).

安全管理器虽然会影响性能,但很少在服务器端使用.