Module java.desktop
Package java.awt

Class AWTPermission

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

public final class AWTPermission extends BasicPermission
这个类用于AWT权限。一个AWTPermission包含一个目标名称,但没有操作列表;你要么有命名的权限,要么没有。

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

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

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

    • 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为空。