模块 java.desktop
 java.awt

类 AWTPermission

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

public final class AWTPermission extends BasicPermission
此类用于 AWT 权限。 AWTPermission 包含目标名称但没有动作列表;您要么拥有命名权限,要么没有。

目标名称是 AWT 权限的名称(见下文)。命名约定遵循分层属性命名约定。此外,星号可用于表示所有 AWT 权限。

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

AWTPermission 目标名称、描述和相关风险
权限目标名称 权限允许什么 允许此权限的风险
访问剪贴板 在 AWT 剪贴板中发布和检索信息 这将允许恶意代码共享潜在的敏感或机密信息。
访问事件队列 访问 AWT 事件队列 检索 AWT 事件队列后,恶意代码可能会偷看甚至从其事件队列中删除现有事件,以及发布可能故意导致应用程序或小程序以不安全方式行为不端的虚假事件。
进入系统托盘 访问 AWT SystemTray 实例 这将允许恶意代码将托盘图标添加到系统托盘。首先,这样的图标可能看起来像某个已知应用程序(例如防火墙或防病毒软件)的图标,并命令用户做一些不安全的事情(借助气球消息)。其次,系统托盘可能会塞满托盘图标,以至于没有人可以再添加托盘图标。
创建机器人 创建 java.awt.Robot 对象 java.awt.Robot 对象允许代码生成本机级别的鼠标和键盘事件以及读取屏幕。它可能允许恶意代码控制系统、运行其他程序、读取显示以及拒绝用户访问鼠标和键盘。
全屏独占 进入全屏独占模式 进入全屏独占模式可以直接访问低级显卡内存。这可以用来欺骗系统,因为程序直接控制渲染。根据实施情况,用于进入全屏独占模式的窗口可能不会显示安全警告(假设已向此应用程序授予fullScreenExclusive权限)。请注意,此行为并不意味着 showWindowWithoutWarningBanner 权限将自动授予具有 fullScreenExclusive 权限的应用程序:非全屏窗口将继续显示安全警告。
listenToAllAWTEvents 监听系统范围内的所有 AWT 事件 添加 AWT 事件监听后,恶意代码可能会扫描系统中调度的所有 AWT 事件,从而读取所有用户输入(例如密码)。每个 AWT 事件监听都是从该事件队列的 EventDispatchThread 的上下文中调用的,因此如果还启用了 accessEventQueue 权限,则恶意代码可能会在系统范围内修改 AWT 事件队列的内容,从而导致应用程序或小程序以不安全的方式行为不端.
读取显示像素 从显示屏回读像素 java.awt.Composite 接口或 java.awt.Robot 类等接口允许任意代码检查显示器上的像素,从而使恶意代码能够窥探用户的活动。
替换KeyboardFocusManager 为特定线程设置 KeyboardFocusManager 安装 SecurityManager 后,调用线程必须被授予此权限才能替换当前的 KeyboardFocusManager 。如果未授予权限,将抛出 SecurityException
设置AppletStub 设置实现 Applet 容器服务的存根 恶意代码可以设置 applet 的存根并导致意外行为或拒绝对 applet 的服务。
setWindowAlwaysOnTop 设置窗口的 always-on-top 属性:Window.setAlwaysOnTop(boolean) 恶意窗口可能使自己看起来和表现得像一个真正的完整桌面,这样毫无戒心的用户输入的信息就会被捕获并随后被滥用
showWindowWithoutWarningBanner 显示一个窗口,但不显示该窗口是由小程序创建的横幅警告 如果没有此警告,小程序可能会弹出窗口,而用户并不知道它们属于某个小程序。由于用户可能会根据窗口是否属于某个小程序(例如,在对话框中输入用户名和密码)做出安全敏感的决定,因此禁用此警告横幅可能会允许小程序欺骗用户输入此类信息。
工具包模态 创建 TOOLKIT_MODAL 对话框并设置 TOOLKIT_EXCLUDE 窗口属性。 当从小程序显示工具包模式对话框时,它会阻止浏览器中的所有其他小程序。从 Java Web Start 启动应用程序时,它的窗口(例如安全对话框)也可能被这些应用程序中显示的工具包模式对话框阻止。
看鼠标指针 随时获取鼠标指针位置信息 不断观察鼠标指针,applet 可以猜测用户正在做什么,即将鼠标移动到屏幕的左下角很可能意味着用户即将启动应用程序。如果使用虚拟键盘以便使用鼠标模拟键盘,小程序可能会猜测正在键入的内容。
参见:
  • 构造方法详细信息

    • AWTPermission

      public AWTPermission(String  name)
      使用指定的名称创建一个新的 AWTPermission。该名称是 AWTPermission 的符号名称,例如“topLevelWindow”、“systemClipboard”等。星号可用于指示所有 AWT 权限。
      参数:
      name - AWTPermission 的名称
      抛出:
      NullPointerException - 如果 namenull
      IllegalArgumentException - 如果 name 为空。
    • AWTPermission

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