java - 如何绕过 accessDeclaredMembers 权限作为小程序?

标签 java security reflection applet greenfoot

我使用了另一个问题中的一些代码来访问 Java 类加载器中的私有(private)字段“类”。这工作正常,但是当我将其移动到小程序时,它会因以下异常而变得困惑:访问被拒绝(java.lang.RuntimePermission accessDeclaredMembers)。我已经做了一些搜索并尝试使用 PrivlegedExceptionAction 来跳过它,但它不起作用。所以我的问题是:是否可以绕过这个,如果不能,还有什么方法可以获取类列表?

反射代码:

final ClassLoader cLoader = getClass().getClassLoader();
            final Field f = ClassLoader.class.getDeclaredField("classes");
            AccessController.doPrivileged(new PrivilegedExceptionAction() {
                    public Object run() throws Exception {
                        f.setAccessible(true);
                        return null;}});
            Vector<Class> classes = (Vector<Class>)f.get(cLoader);
            cList.addAll(classes);

最佳答案

对小程序代码进行数字签名(然后让用户在出现提示时接受)以获得完全权限。

关于java - 如何绕过 accessDeclaredMembers 权限作为小程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12302230/

相关文章:

Drupal 中 $update_access_free = true 的安全风险

c# - 在 C# 中加密字符串并在 Delphi 中解密

go-cmp 在比较 2 个结构时将空接口(interface)值视为 int 和 flat64

reflection - Kotlin:如何访问委托(delegate)的 get- 和 setValue 方法?

c - C 中的字符串处理实践

java - 如何将类返回到 onPostExecute?

java - 为什么我无法使用 Graphics drawString 方法可视化字符串

java - 如何初始化和打印数组中的各个元素

c# - GetField 和 GetValue 等反射方法是否执行 ECMA 规范术语中的 "referencing"或 "access"?

java - 为什么 Spring MVC 会出现 404 错误?