24.4 Applet的安全

当访问包含Applet的网页的时候,不管愿意还是不愿意,网页中的Applet都会被下载并且运行。如果程序员设计一个恶意的Applet,那么用户访问这个网页的时候,就会对用户进行攻击。

为了能解决上面这个问题,Applet已经提供了安全的保障,以防止其内含有威胁用户安全的代码。Applet包含下列安全事项:

❑Applet无法运行用户计算机中的程序。

❑Applet无法访问用户计算机中的文件。

❑Applet无法获取用户计算机中的大部分信息。

❑Applet无法调用用户计算机中的native method。

❑Applet只能与提供本Applet的服务器进行通信。

【实例24.5】下面通过一个实例,演示当Applet试图访问用户计算机上的文件时,发生的情况。


01 import java.awt.*;

02 import java.applet.*;

03 import java.io.*;

04 ///创建一个文本区控件ta

05 ///在初始化方法中添加这个控件,创建一个文件类对象,并且通过判断f是否存在,

06 ///以输出不同的结果

07 public class test5 extends Applet

08 {

09 TextArea ta=new TextArea("",10,30,1);

10 public void init()

11 {

12 add(ta);

13 File f=new File("d:\abc.txt");

14 try

15 {

16 if(f.exists())

17 {

18 ta.setText("文件存在");

19 }

20 else

21 {

22 ta.setText("文件不存在");

23 }

24 }

25 catch(Exception e)

26 {

27 ta.setText(e.toString());

28 }

29 }

30 }


在同一个目录下创建一个HTML文件,代码如下所示。


31 <html>

32<body>

33<Applet code="test5.class"width="200"height="200">

34</Applet>

35</body>

36</html>


【代码说明】第13行创建一个文件对象,对象文件是d:\abc.txt。第16行通过方法exists()判断文件是否存在。

【运行效果】如果d:\abc.txt这个文件存在,则提示文件存在,否则提示文件不存在。