模块 java.base
 java.net

类 NetPermission

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

public final class NetPermission extends BasicPermission
此类用于各种网络权限。 NetPermission 包含名称(也称为“目标名称”)但没有操作列表;您要么拥有命名权限,要么没有。

目标名称是网络权限的名称(见下文)。命名约定遵循分层属性命名约定。此外,星号可能会出现在名称的末尾,跟在“.”之后,或者单独出现,以表示通配符匹配。例如:“foo.*”和“*”表示通配符匹配,而“*foo”和“a*b”则不是。

下表列出了标准的 NetPermission 目标名称,并为每个目标提供了对权限允许的内容的描述以及对授予代码权限的风险的讨论。

权限目标名称、权限允许的内容以及相关风险
权限目标名称 权限允许什么 允许此权限的风险
允许HttpTrace 在 HttpURLConnection 中使用 HTTP TRACE 方法的能力。 使用 HTTP TRACE 的恶意代码可以访问 HTTP 标头中的安全敏感信息(例如 cookie),否则它可能无法访问这些信息。
访问UnixDomainSocket 接受、绑定、连接或获取本地地址的能力Unix域socket。 恶意代码可以通过绑定到相同的路径名(假设它们具有所需的操作系统权限)使用 Unix 域套接字连接到本地进程或模拟本地进程。
getCookieHandler 获取处理 Http 会话的高度安全敏感 cookie 信息的 cookie 处理程序的能力。 恶意代码可以获取 cookie 处理程序以获得对高度安全敏感的 cookie 信息的访问权限。一些网络服务使用 cookie 来保存用户的隐私信息,例如访问控制信息,或者跟踪用户的浏览习惯。
获取网络信息 检索有关本地网络接口的所有信息的能力。 恶意代码可以读取有关网络硬件的信息,例如 MAC 地址,这些信息可用于构建本地 IPv6 地址。
获取代理选择器 获取代理选择器的能力,用于决定在建立网络连接时使用哪些代理。 恶意代码可以获取 ProxySelector 来发现内部网络上的代理主机和端口,然后它们可能成为攻击目标。
获取响应缓存 获取提供对本地响应缓存的访问的响应缓存的能力。 访问本地响应缓存的恶意代码可以访问安全敏感信息。
请求密码认证 向在系统中注册的身份验证器询问密码的能力 恶意代码可能会窃取此密码。
设置CookieHandler 设置用于处理 Http 会话的高度安全敏感 cookie 信息的 cookie 处理程序的能力。 恶意代码可以设置 cookie 处理程序以获得对高度安全敏感的 cookie 信息的访问权限。一些网络服务使用 cookie 来保存用户的隐私信息,例如访问控制信息,或者跟踪用户的浏览习惯。
设置默认认证器 能够设置代理或 HTTP 服务请求身份验证时检索身份验证信息的方式 恶意代码可以设置一个身份验证器,在它从用户那里检索输入时监视和窃取用户身份验证输入。
设置代理选择器 设置代理选择器的能力,用于决定在建立网络连接时使用哪些代理。 恶意代码可以设置将网络流量定向到任意网络主机的 ProxySelector。
设置响应缓存 设置提供对本地响应缓存的访问的响应缓存的能力。 访问本地响应缓存的恶意代码可以访问安全敏感信息,或在响应缓存中创建虚假条目。
setSocketImpl 使用用户指定的 SocketImpl 创建 Socket 或 ServerSocket 的子类的能力。 恶意的用户定义的 SocketImpl 可以通过访问 SocketImpl 的受保护字段的能力以令人惊讶的方式改变 Socket 和 ServerSocket 的行为。
指定流处理器 构造 URL 时指定流处理程序的能力 恶意代码可能会创建一个 URL,其中包含它通常无法访问的资源(如 file:/foo/fum/),指定一个流处理程序,从它确实可以访问的某个地方获取实际字节。因此,它可能能够诱骗系统为某个类创建 ProtectionDomain/CodeSource,即使该类实际上并非来自该位置。
实现注意事项:
实现可以定义额外的目标名称,但应使用命名约定(例如反向域名表示法)以避免名称冲突。
自从:
1.2
参见:
  • 构造方法详细信息

    • NetPermission

      public NetPermission(String  name)
      创建具有指定名称的新 NetPermission。名称是 NetPermission 的符号名称,例如“setDefaultAuthenticator”等。星号可能出现在名称的末尾,跟在“.”之后,或者单独出现,以表示通配符匹配。
      参数:
      name - NetPermission 的名称。
      抛出:
      NullPointerException - 如果 namenull
      IllegalArgumentException - 如果 name 为空。
    • NetPermission

      public NetPermission(String  name, String  actions)
      创建具有指定名称的新 NetPermission 对象。 name 是 NetPermission 的符号名称,actions String 当前未使用,应为 null。
      参数:
      name - NetPermission 的名称。
      actions - 应该为空。
      抛出:
      NullPointerException - 如果 namenull
      IllegalArgumentException - 如果 name 为空。