【问题标题】:What permissions are needed in the manifest file for an applet to communicate via Javascript清单文件中需要哪些权限才能让小程序通过 Javascript 进行通信
【发布时间】:2014-03-16 02:21:58
【问题描述】:

我们使用 Javascript 在小程序与其托管网页之间进行通信。我们需要修改小程序以包含permissions 属性,并且想知道启用小程序的Javascript 通信需要哪个值。我们可以使用sandbox 还是需要使用all-permissions

【问题讨论】:

  • 问之前有没有试过(sandbox)?
  • 是的,我们尝试了沙盒,但我们不确定它是否适用于所有情况。最近小程序安全模型发生了很大变化,我们希望确保将用户出错的可能性降到最低。谢谢。
  • 将用户出错的可能性降到最低的最佳方法是在您可以使用的所有 Java 版本上进行测试。无论如何,您都需要这样做。事实上,无论如何你都需要这样做......以验证你在这里被告知的任何内容!

标签: java javascript html security applet


【解决方案1】:

由 Java Script 编写的小程序只需要与没有 Java Script 的小程序相同的权限。

话虽如此,来自 JS 的任何调用都不会被 JVM 视为“信任”。因此,如果从 JS 调用需要信任的方法,则需要实现(在代码中)使用 doPrivileged(PrivilegedAction)

更多关于AccessController

AccessController 类用于访问控制操作和决策。

更具体地说,AccessController 类用于三个目的:

  • 根据当前有效的安全策略决定是允许还是拒绝对关键系统资源的访问,
  • 将代码标记为“特权”,从而影响后续访问确定,
  • 获取当前调用上下文的“快照”,以便可以针对保存的上下文做出来自不同上下文的访问控制决策。

更多关于PrivilegedAction

要在启用权限的情况下执行的计算。通过在PrivilegedAction 对象上调用AccessController.doPrivileged 来执行计算。 ..


鉴于不断变化的安全机制,我建议将可能曾经从 JS 调用的所有代码包装到 PrivilegedAction 中。

【讨论】:

    【解决方案2】:

    我不知道您是否正在寻找,但对我来说,如果我使用 javascript 部署小程序,它就可以工作: http://docs.oracle.com/javase/tutorial/deployment/applet/invokingAppletMethodsFromJavaScript.html

    sandbox 可以正常工作,但如果你想访问文件或套接字,你需要配置 java.policy 文件: http://docs.oracle.com/javase/tutorial/security/tour1/wstep2.html

    并授予 java.security.Permission 或 java.io.FilePermission 等权限

    【讨论】:

    猜你喜欢
    • 2012-12-31
    • 2021-03-25
    • 2013-02-06
    • 1970-01-01
    • 1970-01-01
    • 2017-01-25
    • 2023-03-03
    • 1970-01-01
    • 2011-02-06
    相关资源
    最近更新 更多