Module java.base
Package java.net

Class NetPermission

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

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

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

以下表列出了标准的NetPermission目标名称,以及每个名称允许的权限和授予代码该权限的风险讨论。

权限目标名称,权限允许的内容,以及相关风险
权限目标名称 权限允许的内容 允许此权限的风险
allowHttpTrace 在HttpURLConnection中使用HTTP TRACE方法的能力。 使用HTTP TRACE的恶意代码可能会访问HTTP标头中的安全敏感信息(如cookies),而否则可能无法访问。
accessUnixDomainSocket 接受、绑定、连接或获取Unix域套接字的本地地址的能力。 恶意代码可以使用Unix域套接字连接到本地进程或冒充本地进程,通过绑定到相同的路径名(假设它们具有所需的操作系统权限)。
getCookieHandler 获取处理高度安全敏感cookie信息的cookie处理程序的能力。 恶意代码可以获取cookie处理程序以访问高度安全敏感的cookie信息。一些Web服务器使用cookie保存用户的私人信息,如访问控制信息,或跟踪用户的浏览习惯。
getNetworkInformation 检索有关本地网络接口的所有信息的能力。 恶意代码可以读取有关网络硬件的信息,如MAC地址,这些信息可以用于构建本地IPv6地址。
getProxySelector 获取用于在进行网络连接时做出代理选择的代理选择器的能力。 恶意代码可以获取ProxySelector以发现内部网络上的代理主机和端口,这些代理主机和端口可能成为攻击目标。
getResponseCache 获取提供对本地响应缓存的访问权限的响应缓存的能力。 恶意代码访问本地响应缓存可能会访问安全敏感信息。
requestPasswordAuthentication 向系统注册的验证器请求密码的能力 恶意代码可能窃取这个密码。
setCookieHandler 设置处理高度安全敏感cookie信息的cookie处理程序的能力。 恶意代码可以设置cookie处理程序以获取对高度安全敏感cookie信息的访问权限。一些Web服务器使用cookie保存用户的私人信息,如访问控制信息,或跟踪用户的浏览习惯。
setDefaultAuthenticator 设置在代理或HTTP服务器请求身份验证时检索身份验证信息的方式的能力 恶意代码可以设置一个监视和窃取用户身份验证输入的验证器,因为它从用户那里检索输入。
setProxySelector 设置用于在进行网络连接时做出代理选择的代理选择器的能力。 恶意代码可以设置一个ProxySelector,将网络流量定向到任意网络主机。
setResponseCache 设置提供对本地响应缓存的访问权限的响应缓存的能力。 恶意代码访问本地响应缓存可能会访问安全敏感信息,或在响应缓存中创建虚假条目。
setSocketImpl 使用用户指定的SocketImpl创建Socket或ServerSocket的子类的能力。 恶意用户定义的SocketImpl可以通过访问SocketImpl的受保护字段,以意想不到的方式更改Socket和ServerSocket的行为。
specifyStreamHandler 在构造URL时指定流处理程序的能力 恶意代码可能会创建一个URL,其中包含它通常无法访问的资源(如file:/foo/fum/),指定一个流处理程序,从某个它可以访问的地方获取实际的字节。因此,它可能会欺骗系统创建一个类的ProtectionDomain/CodeSource,尽管该类实际上并不来自该位置。
实现注意事项:
实现可以定义额外的目标名称,但应使用命名约定,如反向域名表示法,以避免名称冲突。
自版本:
1.2
参见:
  • Constructor Details

    • NetPermission

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

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