- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
由于 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 )。主要有两个步骤:
把 Permissions
和 Codebase
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 运行时将小程序保持在沙盒中。
在您的<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/
我正在尝试获取网络摄像头直播。这是我的 C 程序: int main() { cvNamedWindow("Webcam feed", 1); printf("Checking if
首先,我阅读了一些有类似问题的人的帖子,但所有答案都没有超出 export DISPLAY=:0.0 和 xauth cookies。所以这是我的问题,提前感谢您的时间! 我开发了一个小库,它使用 O
我是一名优秀的程序员,十分优秀!