在安全管理器类中检查 Create ClassLoader 这个方法是啥

Posted

技术标签:

【中文标题】在安全管理器类中检查 Create ClassLoader 这个方法是啥【英文标题】:What does this method do checkCreateClassLoader in the security manager class在安全管理器类中检查 Create ClassLoader 这个方法是什么 【发布时间】:2014-11-26 01:00:15 【问题描述】:

我想知道 checkCreateClassLoader 方法的作用,它在 java api 文档中不是很清楚。是的,假设我有一个应用程序并希望避免有人在运行时转储我的类(使用 java 代理或反射) .我可以使用这种方法来避免这种情况吗?谢谢

马利克兹

【问题讨论】:

您可能想进一步扩展您的问题。看起来你并没有投入太多精力。如果你不愿意花时间解释和澄清你的问题,你怎么能指望别人花时间回答你的问题呢? 好吧,它所做的是检查是否允许有问题的代码创建一个新的类加载器(这是一个与安全相关的操作)。您是在问如何设置此权限? 我只想知道 checkCreateClassloader 方法是做什么的?它在安全包内的 SecurityManager 类中。我认为那很清楚不是吗? 我也想知道它是否会阻止某些类被加载 @MalikDz:嗯,JavaDoc 准确地说明了它的作用。你问它是如何实现的?或者如何设置这些权限?或者 SecurityManager 通常做什么(checkCreateClassLoader 与所有其他权限实际上相同,你清楚吗)? 【参考方案1】:

假设我有一个应用程序并希望避免有人在运行时转储我的类(使用 java 代理或反射)。我可以使用这种方法来避免这种情况吗?

没有。

首先,“Java 代理”已经暗示了对运行时环境的完全控制。

如果您有用户在他们自己的机器上运行您的代码,they can get at your class files。

如果代码在您的机器上运行(但用户可以通过某种方式上传自己的 JAR 文件),那么您可以使用自定义安全管理器,可能与自定义 ClassLoader 结合使用,以禁用反射并可能还可以访问类的字节码(并且还限制了将这些“泄露”数据发送回用户所需的通信渠道)。

【讨论】:

以上是关于在安全管理器类中检查 Create ClassLoader 这个方法是啥的主要内容,如果未能解决你的问题,请参考以下文章

优化器类中 tensorflow 最小化()函数中的“gate_gradients”属性是啥?

Qt/VTK:自定义交互器类中的访问函数

如何将 tf-idf 应用于整个数据集(训练和测试数据集),而不是仅在朴素贝叶斯分类器类中训练数据集?

集合初始化器类初始化器匿名类

Swift 仅将协议限制在某些类型的类中

Python 多处理管理器类对象线程/进程安全