Module jdk.attach

Class AttachPermission

所有已实现的接口:
Serializable, Guard

public final class AttachPermission extends BasicPermission
当设置了一个SecurityManager时,当代码调用VirtualMachine.attach来连接到目标虚拟机时,将检查此权限。当创建一个AttachProvider时,也会检查此权限。

一个AttachPermission对象包含一个名称(也称为“目标名称”),但没有操作列表;你要么有命名权限,要么没有。以下表格提供了权限允许的摘要描述,并讨论了授予代码权限的风险。

表显示权限目标名称、权限允许的内容以及相关风险
权限目标名称 权限允许的内容 允许此权限的风险
attachVirtualMachine 能够连接到另一个Java虚拟机并在该VM中加载代理。 这允许攻击者控制目标VM,可能导致其行为异常。
createAttachProvider 能够创建一个AttachProvider实例。 这允许攻击者创建一个AttachProvider,可能被用于连接到其他Java虚拟机。

程序员通常不直接创建AttachPermission对象。相反,它们是由基于读取安全策略文件的安全策略代码创建的。

参见:
  • Constructor Details

    • AttachPermission

      public AttachPermission(String name)
      构造一个新的AttachPermission对象。
      参数:
      name - 权限名称。必须是"attachVirtualMachine"或"createAttachProvider"之一。
      抛出:
      NullPointerException - 如果名称为null
      IllegalArgumentException - 如果名称无效。
    • AttachPermission

      public AttachPermission(String name, String actions)
      构造一个新的AttachPermission对象。
      参数:
      name - 权限名称。必须是"attachVirtualMachine"或"createAttachProvider"之一。
      actions - 未使用,应为null或空字符串。
      抛出:
      NullPointerException - 如果名称为null
      IllegalArgumentException - 如果参数无效。