# Java Web Start 和 Security

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

本节介绍通过 Java Web Start 部署的应用程序的安全性基础知识，包括：

默认情况下，使用 Java Web Start 启动的应用程序在受限制的环境中运行，称为 _ 沙箱 _。在这个沙盒中，Java Web Start：

*   保护用户免受可能影响本地文件的恶意代码的侵害
*   保护企业免受可能试图访问或破坏网络数据的代码

由 Java Web Start 启动的沙箱应用程序仍保留在此沙箱中，这意味着它们无法访问本地文件或网络。有关信息，请参阅富 Internet 应用程序中的[安全性。](../doingMoreWithRIA/security.html)

## 动态下载 HTTPS 证书

Java Web Start 会像浏览器一样动态导入证书。为此，Java Web Start 使用`java.protocol.handler.pkgs`系统属性设置自己的`https`处理程序，以初始化 [`SSLSocketFactory`](https://docs.oracle.com/javase/8/docs/api/javax/net/ssl/SSLSocketFactory.html) 和 [`HostnameVerifier`](https://docs.oracle.com/javase/8/docs/api/javax/net/ssl/HostnameVerifier.html) 的默认值。它使用方法 [`HttpsURLConnection.setDefaultSSLSocketFactory`](https://docs.oracle.com/javase/8/docs/api/javax/net/ssl/HttpsURLConnection.html#setDefaultSSLSocketFactory-javax.net.ssl.SSLSocketFactory-) 和 [`HttpsURLConnection.setDefaultHostnameVerifier`](https://docs.oracle.com/javase/8/docs/api/javax/net/ssl/HttpsURLConnection.html#setDefaultHostnameVerifier-javax.net.ssl.HostnameVerifier-) 设置默认值。

如果您的应用程序使用这两种方法，请确保在 Java Web Start 初始化`https`处理程序后调用它们，否则您的自定义处理程序将被 Java Web Start 默认处理程序替换。

您可以通过执行以下操作之一来确保使用您自己的自定义`SSLSocketFactory`和`HostnameVerifiter`：

*   安装自己的`https`处理程序，以替换 Java Web Start `https`处理程序。
*   在您的应用程序中，仅在创建第一个`https URL`对象后调用`HttpsURLConnection.setDefaultSSLSocketFactory`或`HttpsURLConnection.setDefaultHostnameVerifier`，该对象首先执行 Java Web Start `https`处理程序初始化代码。