第12章Java小应用程序( Applet,)的设计 H 12.12 Applet的安全机制 我们已经知道, Applet是通过浏览器下载并自动运 行的,这听起来好像有些可怕,通过浏览器自动运行, 这不正是病毒制造者的"梦想"吗。 Applet的设计者可能 会把Aplt设计成一个病毒,并借助浏览器让它进入用 户的计算机。听起来很可怕,但Java的设计者们也考 虑到了这一点,所以对 Applet的能力做了种种限制,只 要一个 Applet试图违反安全条例,小应用程序安全管理 器( Applet security Manager)就会发出一个 Security Exception(安全违例)消息
第12章 Java 小应用程序(Applet)的设计 12.1.2 Applet的安全机制 我们已经知道,Applet是通过浏览器下载并自动运 行的,这听起来好像有些可怕,通过浏览器自动运行, 这不正是病毒制造者的"梦想"吗。Applet的设计者可能 会把Applet设计成一个病毒,并借助浏览器让它进入用 户的计算机。听起来很可怕,但Java的设计者们也考 虑到了这一点,所以对Applet的能力做了种种限制,只 要一个Applet试图违反安全条例,小应用程序安全管理 器(Applet Security Manager)就会发出一个 SecurityException(安全违例)消息
第12章Java小应用程序( Applet,)的设计 H 那么到底哪些是 Applet可以做的,哪些是不可以做 的呢?小应用程序所能够控制的安全程度是在浏览器 层次上实现的,小应用程序的安全机制通过"沙箱 ( sandbox)控制。在大多数浏览器上,在沙箱内运行时, 缺省地禁止以下操作: ●运行时执行另一程序:小应用程序绝不能运行任何 个本地可执行程序。 ●任何文件的输入/输出:小应用程序不能读/写本地计 算机的文件系统
第12章 Java 小应用程序(Applet)的设计 那么到底哪些是Applet可以做的,哪些是不可以做 的呢?小应用程序所能够控制的安全程度是在浏览器 层次上实现的,小应用程序的安全机制通过"沙箱 "(sandbox)控制。在大多数浏览器上,在沙箱内运行时, 缺省地禁止以下操作: ● 运行时执行另一程序:小应用程序绝不能运行任何 一个本地可执行程序。 ● 任何文件的输入/输出:小应用程序不能读/写本地计 算机的文件系统
第12章Java小应用程序( Applet,)的设计 H ●调用任何本地方法:除了所用Java版本号,操作系 统名和版本号,小应用程序不能获取任何与本地计算 机有关的信息,也不能通过调用任何本地方法、AP等 方法获得。特别是,小应用程序不能获得用户名、电 子邮件地址等等信息。 ●尝试打开除提供 Applet的主机之外的任何系统的 Socket:除了下载它的服务器之外,小应用程序不能和 任何一台主机通信
第12章 Java 小应用程序(Applet)的设计 ● 调用任何本地方法:除了所用Java版本号,操作系 统名和版本号,小应用程序不能获取任何与本地计算 机有关的信息,也不能通过调用任何本地方法、API等 方法获得。特别是,小应用程序不能获得用户名、电 子邮件地址等等信息。 ● 尝试打开除提供Applet的主机之外的任何系统的 Socket:除了下载它的服务器之外,小应用程序不能和 任何一台主机通信
第12章Java小应用程序( Applet,)的设计 H 这些限制的关键在于:通过限制 Applet对系统文件 的存取来阻止它侵犯一个远程系统的隐私或破坏该系 统;禁止执行另一程序和不允许调用本地方法限制了 Applet启动未经JYVM检查的代码;对 Socket的限制则禁 止了与另一个可能有危害性的程序的通信。 由于小应用程序是由JVM( Java Virtual machine)解 释执行的字节码,而非由CPU直接执行的机器码,所 以只要在JVM中检查了小应用程序的指令和程序区域, 就可以确定,小应用程序不会对用户计算机系统造成 较大的危害。表12.1显示了小应用程序在沙箱中运行时 的功能
第12章 Java 小应用程序(Applet)的设计 这些限制的关键在于:通过限制Applet对系统文件 的存取来阻止它侵犯一个远程系统的隐私或破坏该系 统;禁止执行另一程序和不允许调用本地方法限制了 Applet启动未经JVM检查的代码;对Socket的限制则禁 止了与另一个可能有危害性的程序的通信。 由于小应用程序是由JVM(Java Virtual Machine)解 释执行的字节码,而非由CPU直接执行的机器码,所 以只要在JVM中检查了小应用程序的指令和程序区域, 就可以确定,小应用程序不会对用户计算机系统造成 较大的危害。表12.1显示了小应用程序在沙箱中运行时 的功能
第12章Java小应用程序( Applet,)的设计 H 表121小应用程序的功能 浏览器中运行 小应用程序观察器中运行 读/写本地文件 获取文件信息 删除文件 运行另一程序 读取 username属性 连接服务器上的网络端口 连接另一台主机上的网络端口 否否否否否是否否否 下载Java库 是是是否是是是是是是 调用退出 创建一个弹出试窗口 带有警告信息
第12章 Java 小应用程序(Applet)的设计 表12.1 小应用程序的功能 浏览器中运行 小应用程序观察器中运行 读/写本地文件 否 是 获取文件信息 否 是 删除文件 否 是 运行另一程序 否 否 读取username属性 否 是 连接服务器上的网络端口 是 是 连接另一台主机上的网络端口 否 是 下载Java库 否 是 调用退出 否 是 创建一个弹出试窗口 带有警告信息 是