gpt4 book ai didi

java - 您可以签署 Java 小程序但将其保留在沙箱中(不授予它对用户计算机的完全访问权限)吗?

转载 作者:IT老高 更新时间:2023-10-28 20:35:28 26 4
gpt4 key购买 nike

由于 Oracle 的最新更改,我似乎必须签署一个小程序,即使我不需要或不希望它可以不受限制地访问用户的计算机(这就是它当前未签名的原因)。特别是,我不希望它们为已签名的小程序显示警告:

This application will run with unrestricted access which may put your computer and personal information at risk.

...这会吓到使用它的人。

是否可以对小程序进行签名但以某种方式将其标记为“但继续使用沙盒”?

我签署它的唯一原因是,从第 7 版更新 40 开始,Oracle 进一步增加了运行未签名小程序时必须处理的唠叨用户。过去,您可以选中一个框,说明您曾经信任过一个小程序,并且会被记住。从更新 40 开始,它只被记住那个浏览器 session ;如果您关闭浏览器并稍后再回来,警告会再次出现。他们还表示,他们将在 Java 插件的“ future 版本”中完全禁用未签名的小程序。

最佳答案

是的,你可以。 This page展示了如何做(嗯,大部分;你还需要 this page )。主要有两个步骤:

  1. PermissionsCodebase list 文件中的属性:

    Permissions: sandbox Codebase: *.myserver.com

    这些新属性是在 Java 7 Update 25 和 are discussed here 中引入的。 .上面链接的第一页只显示Codebase: myserver.com ,但大多数网站都需要上面的通配符。 (我不知道 Codebase 属性是否需要对小程序进行沙箱处理,但无论如何对于大多数已签名的小程序来说这似乎是个好主意。)

    然后在构建 jar 时使用该 list 文件,例如:

    jar cvfm YourJarFile.jar your_manifest_file.txt classes_and_such

    这些属性将在 jar 中的 MANIFEST.MF 文件中结束,该文件告诉 Java 运行时将小程序保持在沙盒中。

  2. 在您的<applet>标签,您必须指定 permissions参数,as discussed here :

    <applet code='yourAppletClass' archive='YourJarFile.jar'>     <param name="permissions" value="sandbox"> </applet>

    如果没有这第二步,一个在 jar 中请求沙盒权限而不是标签的签名小程序将被阻止运行,并显示一个标题为“应用程序无法运行”的对话框,给出“原因:请求仅在沙盒中运行的 JAR list 。”

如果您执行上述两个步骤,用户会收到更令人放心的消息(并且可能小程序仍处于沙盒状态):

This application will run with limited access that is intended to protect your computer and personal information.

...如果他们选中了信任发布者和位置的相关复选框,那么当他们下次打开浏览器并运行您的小程序时就不会再看到它。


(在提出这个问题的过程中,我找到了答案,但由于 Stack Overflow 上没有答案,我想我会继续前进,post the question and answer。)

关于java - 您可以签署 Java 小程序但将其保留在沙箱中(不授予它对用户计算机的完全访问权限)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18914650/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com