291.md 2.3 KB
Newer Older
W
init  
wizardforcel 已提交
1 2 3 4 5 6
# 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 部署的应用程序的安全性基础知识,包括:

W
wizardforcel 已提交
7
默认情况下,使用 Java Web Start 启动的应用程序在受限制的环境中运行,称为*沙箱*。在这个沙盒中,Java Web Start:
W
init  
wizardforcel 已提交
8 9 10 11 12 13 14 15

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

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

## 动态下载 HTTPS 证书

W
wizardforcel 已提交
16
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-) 设置默认值。
W
init  
wizardforcel 已提交
17

W
wizardforcel 已提交
18
如果您的应用程序使用这两种方法,请确保在 Java Web Start 初始化`https`处理器后调用它们,否则您的自定义处理器将被 Java Web Start 默认处理器替换。
W
init  
wizardforcel 已提交
19 20 21

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

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