⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 62.html

📁 写给JSP初级程序员的书
💻 HTML
📖 第 1 页 / 共 2 页
字号:
                    <br>
                      利用 Java 的功能,会产生双重伪造的可能性,典型的电子邮件伪造(mail-forging )的情况会更加严重。Applet 
                    先使用系统送出假信息,以欺骗真的邮件。   最后,目前许多系统中盛行的声音功能,也可能会导致窃听。如果攻击者能掌握系统的麦克风,就有可能进行窃听的行为。 
                    更隐秘的窃听是访问监视进程表(process table )和相关的文件。网页式的窃听,还可能包括追踪某一特定使用者所经过的网路连结。<br>
                    <br>
                      Java 对于某些形式的网络攻击可以成功的进行防卫。例如,文件系统的输入输出操作就受到严格的控制。不过,这又与 
                    applet 常需要一条通道以便传回数据的要求相违背,因为applet 总是必须与原来的服务器一直相连。电子邮件的伪造防卫起来则比较困难。由于缺乏对客户端连接接口的限制功能,电子邮件的伪造不太可能杜绝。<br>
                    <br>
                    恶意之3∶拒绝系统服务<br>
                    <br>
                      拒绝系统服务式的攻击,会让系统资源无法正常使用。通常的做法是利用一个执行程序吸取超过正常系统所分配的资源,甚至是霸占整个系统。这类攻击还可分为几个小的类型,例如填满文件系统或用光所有可用的文件资源;调用所有系统的内存,产生数以千计的窗口,以便有效的阻止屏幕输出或找开新的窗口;产生许多高优先权的执行线程,以耗光 
                    CPU的执行周期。 虽然这一类危险的破坏作用也很大,但它们似乎并未引起Java 的设计者的重视。<br>
                    <br>
                      人们对防止这种攻击的重要性还有些争议。在大部分情况下,拒绝系统服务式的攻击,比较接近与使用者敌对的攻击,因为从此类攻击中使系统恢复正常一般比较容易,只需要重新启动系统即可。不过,即使如此,在一些重要的系统中也可能会造成严重的后果,人们当然谁也不希望在与重要的系统连结时重新启动系统吧。例如,在处理股票交易的机器上蓄意拒绝系统服务,其造成的损失将难以想像的。<br>
                    <br>
                      拒绝系统服务式的攻击是 Java 常见的安全问题之一。 现在Internet上有一个专门介绍此类问题的站点,这就是Mark 
                    La Due的Hostile Applet主页(http://www.math.gatech.edu/~maladue/HostileApplets.htm) 
                    中,不兴趣的读者不妨一看,在这里面介绍了许多实际的例子。要制造这种类型的攻击实际上并不难,不过由于目前 Java 的安全模型并没有提供很好的解决办法,因此对它的防范却比较困难。 
                    <br>
                     <br>
                      还有一种类型的 applet 攻击,只是造成使用者的困扰,虽然与以上三种攻击相比危险性小得多,但也值得引起重视。例如,故意发出不经意的声音,或在屏幕上显示不雅的画面等等。另外,还有单纯的程序设计错误而引起的一些不良后果也属于此类。正如前面所讲的,某些类型的拒绝系统服务式攻击,也可以归类为单纯的敌对行为,例如,产生众多窗口的操作,可能只是令人困扰而已,并不会造成破坏系统的数据。<br>
                    Java的安全机制 <br>
                    <br>
                      Java语言的安全模型与传统的安全方法有很大的不同。第一,以前绝大多数操作系统都允许应用程序访问大部分系统资源。管理者必须依靠用户来对系统资源进行保护(如为不同的人设置不同的访问权限等)。第二,在应用程序执行前依靠用户来对其进行安全处理(如进行消毒等)。这种安全方法有两个明显的缺点:它依靠用户来进行验证,而且要依赖于验证软件本身的可靠性。而Java则采取了许多新的安全措施,它的最主要的安全机制就是Java沙箱。 
                    为了抵抗这四种类型的 applet 攻击,Java安全模型提供了三把利箭∶字节码验证器(Byte-Code Verifier)、applet类装载器(Class 
                    Loader)以及安全管理器(Security Manager)。 这三者结合起来可在 applet 的装载与执行阶段,对文件系统、网络与浏览程序的内部存取做进一步检查。这三者缺一不可,共同维护着Java 
                    applet的安全。<br>
                    <br>
                    ●类装载器<br>
                    <br>
                      applet是作为一个Web主页的一部分执行的,为了装载applet,浏览器需要调用Java applet类装载器。类装载器能够确定applet何时以及如何装载类(即代码)。它的主要功能包括:<br>
                    <br>
                      .从远程机器上开载applet代码 <br>
                    <br>
                      .创建和实施一个名称空间分级,以确保运行的applet不会取代执行环境中的系统级组件,而且它还可以防止applet创建自己的类装载器。<br>
                    <br>
                      .防止applet调用作为系统的类装载器的一部分的方法。当一个applet被执行时,浏览器调用applet类浏览器, 
                    类装载器装载所有的applet和它们相应的类。一般地,applet不会安装新的类装载器,因此applet类装载器能一直保持对Java运行环境的控制。<br>
                    <br>
                    applet类装载器为每个applet创建一个新的名称空间,因此applet只能访问属于它自己的名称空间的类。这些类都属于标准Java 
                    API库的一部分。applet不能访问属于其它applet的任何类。<br>
                    <br>
                    ●字节码验证器 <br>
                    <br>
                      Java源代码在执行前需要被编译成平台独立的字节码。在一个类装载器可能允许一个指定的applet运行前,它的代码必须要由字节码验证器进行验证。事实上,Java字节码验证器假设了所有的代码都是有可能突破系统的安全措施的。<br>
                    <br>
                      字节码验证器可以进行几类验证。在基本级上,它保证代码服从Java语言规范。在更复杂的级上,验证器使用一个内置的定理证明器来对代码进行验证。这可以确保applet不会伪造指针、绕过访问限制或通过非法计算来访问对象等。字节码验证器同内置在Java语言本身中的安全功能一起使用可以保证:<br>
                    <br>
                      .编译后的代码格式正确 <br>
                    <br>
                      .内部栈将不会溢出。如果发生这样的事件,系统就会变得不稳定,此时就最容易受到黑客们的攻击。 <br>
                    <br>
                      .不会发生非法的数据转换如验证器将不会允许将一个整数作为指针使用。这可以保证变量不能对限制使用的内存进行访问。<br>
                    <br>
                      .字节码指令将具有类型适当的参数 <br>
                    <br>
                      .所有的类成员访问都是合法的。也就是说,一个对象的私有数据可以保持它的隐私性。 使用字节码验证器意味着Java在允许不可信的代码在它的名称空间里运行。这样,名称空间就保证了一个applet不会影响运行环境的其它部分。代码验证保证一个applet不能溢出它的名称空间。因此到最后,JVM将只执行已经通过字节码验证的代码。<br>
                    <br>
                    ●安全管理器 <br>
                    <br>
                      Java安全模型的第三个也是最重要的组件是安全管理器。它的任务是对所有的“危险的方法”──即那些请求文件I/O、网络访问或那些想安装一个新的类装载器的类──进行验证。遇到这样的情况时,安全管理器可以对请求给予允许或否决。如,如果applet调用一个“读”方法,JVM就向安全管理器询问这个操作是否允许。如果applet是可信的,该请求就被安全管理器批准;否则即予以否决。实际上,安全管理器的作用就是保卫沙箱之间的边界 
                    。<br>
                    <br>
                    安全使用的原则 <br>
                    <br>
                      尽管Java安全模型中沙箱已经提供了较好的安全防范措施,但在现实生活中恶意的 applet总是存在的,我们不能指望Java 
                    自身的安全模型能够防护一切恶意的攻击,它并不是一副解决Java安全问题的灵丹妙药。虽然Java的安全机制也在不断完善,但这总需要一个过程,而且这主要是Java设计得的问题。那么对我们普通的用户来讲,目前是不是有什么原则可供遵循,以便能较为安全的使用 
                    Java 呢?<br>
                    <br>
                      事实上,的确是有几个简单而直接的方法,而且其中大部分属于已知的常识,另外一些则需要对 Java 有所了解才行,以下则提供一些原则作为参考。<br>
                    <br>
                      首先,管理人员必须先对可能遇到的风险进行评估,并针对网页上的恶意 Java applet与其它类似的执行文件制定相关策略。其次,要深入了解自己的 
                    Java 运行环境。对于所使用的 Java 虚拟机器(VM)是何种品牌的要进行了解,因为不同公司的Java虚拟机采用的安全策略是不一样的,如 
                    Netscape 公司所采取的安全策略,就与 Microsoft 不同。 <br>
                    <br>
                      其次,不要随便浏览自己不了解的网络站点。正如你不会随便将车驶入不熟悉的危险地区一样,也不要随便进入不熟悉的网页地点,以免落入网路黑客的陷阱。例如,如果你要到 
                    Sun 公司的网页逛逛, 这当然没问题,但假如要到名不见经传的网页浏览,那就要三思了。大部分的网页是安全的,不过如果用户自己的机器在有重要的数据需要保护,最好还是只到自己知道并且信任的Web站点。<br>
                    <br>
                      再次,尽量使用最新版的浏览程序。这是因为对安全问题的修补,通常只会在最新版的浏览程序中通常都会针对以前版本的bug进行改进或提供“补丁”程序。<br>
                    <br>
                      另外用户也可以多留意目前市场上针对 Java的漏洞进行弥补的新产品。如不久前有一家名为Gradient Technologies 
                    的公司,推出了一个对浏览时所连接的服务器进行验证的套装软件。 据该公司的产品开发主管 Brian Schimpf 表示,这个套装软件可对记录中的使用者,以及内外部的服务器进行验证。<br>
                    <br>
                      另外还有一些产品,如InterScan WebProtect(Trend Micro公司)、Gauntlet (Trusted Information系统公司)、SurfinGate and 
                    SurfinShied (Finjan Software 公司 )等等,都宣称能防止恶意的Java applet,用户对这些产品也可以不妨一试。<br>
                    <br>
                      作为网络用户,对于相关的网络安全警告是应该多加注意的。其中一个既简单又有效的方法,就是订阅“电脑紧急事件反应小组(CERT)”的邮递表(mailing 
                    list)。 只要有特别严重的安全问题发生,CERT都会及时通知 Internet的使用者。一般来讲,它提供的信息比厂商要来得及时。此外,你也可以比常访问一下Java安全Web站点(http://www.rstcorp.com/java-security.html),从那里可以了解到与 
                    Java 安全问题相关的最新信息。<br>
                    <br>
                      假如用户真的有非常重要的数据需要保护,建议还是采取最严格的防范措施,也就是干脆与 Internet 完全断开,或者不要在重要机器上使用 
                    Web。当然这并不是要求用户因噎废食,只是说要根据用户能够接受的安全风险来决定是否要使用Web。总而言之,要谨慎的对风险进行评估,一旦受到恶意的applet的攻击,会损失哪些数据?如果一个公司想通过Internet进行电子商务,那就需要考虑一旦公司数据受攻击后,是否可能会遭受窃取或毁损的问题了。对于一般的家庭使用者,可能不会有太大的问题,但如果你的机器里拥有有价值的数据资料的话,那也需要注意对恶意的applet进行防范。
        </td>
      </tr>
    </td>
  </tr>
</div>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -