# 小程序可以做什么和不能做什么

> 原文： [https://docs.oracle.com/javase/tutorial/deployment/applet/security.html](https://docs.oracle.com/javase/tutorial/deployment/applet/security.html)

当用户访问包含 applet 的页面时，Java 小程序将加载到客户端上。 Java applet 背后的安全模型旨在保护用户免受恶意 applet 的攻击。

小程序是沙箱小程序或特权小程序。沙箱小程序在安全沙箱中运行，只允许一组安全操作。特权小程序可以在安全沙箱之外运行，并具有访问客户端的广泛功能。

未签名的小程序仅限于安全沙箱，仅在用户接受小程序时运行。由来自公认的证书颁发机构的证书签名的小程序既可以在沙箱中运行，也可以请求在沙箱外运行的权限。在任何一种情况下，用户都必须接受 applet 的安全证书，否则 applet 将被阻止运行。

建议您使用 Java 网络启动协议（JNLP）启动小程序，以利用扩展的功能并改善用户体验。有关 applet 部署的分步说明，请参阅[部署 Applet](deployingApplet.html) 。

建议您将 applet 部署到 Web 服务器，甚至用于测试。要在本地运行 applet，请将 applet 添加到例外站点列表，该列表由 Java 控制面板的“安全”选项卡管理。

在本主题中，我们将讨论 applet 的安全限制和功能。

## 沙盒小程序

沙箱小程序仅限于安全沙箱，_ 可以 _ 执行以下操作：

*   他们可以与主机和端口建立网络连接。协议必须匹配，如果使用域名加载 applet，则必须使用域名连接回主机，而不是 IP 地址。
*   他们可以使用`java.applet.AppletContext`类的`showDocument`方法轻松显示 HTML 文档。
*   他们可以在同一页面上调用其他 applet 的公共方法。
*   从本地文件系统（从用户的`CLASSPATH`中的目录）加载的小程序没有通过网络加载的小程序的限制。
*   他们可以读取安全的系统属性。有关安全系统属性的列表，请参见[系统属性](../doingMoreWithRIA/properties.html)。
*   使用 JNLP 启动时，沙箱小程序还可以执行以下操作：
    *   他们可以在客户端上打开，读取和保存文件。
    *   他们可以访问共享的系统范围的剪贴板。
    *   他们可以访问打印功能。
    *   他们可以在客户端上存储数据，决定如何下载和缓存 applet 等等。有关使用 JNLP API 开发 applet 的更多信息，请参阅 [JNLP API](../doingMoreWithRIA/jnlpAPI.html) 。

沙箱小程序 _ 无法 _ 执行以下操作：

*   他们无法访问客户端资源，例如本地文件系统，可执行文件，系统剪贴板和打印机。
*   它们无法连接到任何第三方服务器（除其源自的服务器之外的任何服务器）或从中检索资源。
*   他们无法加载本机库。
*   他们无法更改 SecurityManager。
*   他们无法创建 ClassLoader。
*   他们无法读取某些系统属性。有关禁用的系统属性列表，请参见[系统属性](../doingMoreWithRIA/properties.html)。

## 特权小程序

特权小程序没有对沙箱小程序施加的安全限制，并且可以在安全沙箱外部运行。

* * *

**Note:**  JavaScript code is treated like unsigned code. When a privileged applet is accessed from JavaScript code in an HTML page, the applet is executed _within_ the security sandbox. This implies that the privileged applet essentially behaves likes a sandbox applet.

* * *

有关如何使用 applet 的信息，请参阅富 Internet 应用程序中的[安全性。](../doingMoreWithRIA/security.html)

## 附加信息

有关小程序安全性对话框的更多信息，请参阅[探索安全警告功能](http://www.oracle.com/technetwork/articles/javase/appletwarning-135102.html)（有关 oracle.com/technetwork 的文章）