【问题标题】:Safari 7, Mac OS X: Determine if Java is in 'unsafe' mode via javascriptSafari 7、Mac OS X:通过 javascript 确定 Java 是否处于“不安全”模式
【发布时间】:2013-11-25 15:34:39
【问题描述】:

好的,所以我们有一个 Java 小程序,它提供了将文件上传到服务器的能力。一些have already noticed,该用户需要为我们的站点打开“不安全”java 模式才能使applet 工作。

确定 java 的“安全性”的一种方法是尝试加载“假”小程序并查看它的行为。这将需要一些时间来加载 JRE,这不是我想要的。

问题是:我们能否仅使用 JavaScript 确定 java 是否在不安全模式下运行?我真的希望 Apple 增加了这种可能性。

事实上,一些链接到描述此行为的地方将不胜感激。

【问题讨论】:

    标签: javascript safari applet


    【解决方案1】:

    我相信您误解了我最初发布的关于 Java 小程序和 Safari 7 的文章。Safari 7 实际上并没有“阻止”小程序加载。 小程序的加载方式与在 Safari 6 下加载的方式完全相同。唯一的问题是 Safari 7(而不是 6 及更低版本)实际上限制小程序访问文件系统,如果小程序在默认设置的“安全模式”下运行。

    因此,如果您的小程序不需要访问本地文件(可能还有其他一些 I/O,但我没有尝试其他选项)- 它不会发现任何错误。

    但是,一旦您的小程序尝试访问本地文件系统,它就会得到 FileNotFoundException。

    所以对我来说,检查小程序是否处于“安全模式”的最佳方法是简单地尝试访问您知道存在并且用户可以访问的文件夹(我认为您可以开始尝试使用“.”或“..”)。如果不是访问该文件夹,您将遇到 FileNotFoundException,您可以假设(并向您的用户建议)小程序正在“安全模式”下运行。

    此外,我绝对确定,如果特定小程序处于“安全模式”,则无法通过 js 检查或询问 Safari 7 是否以“安全模式”或“不安全模式”运行所有小程序。

    希望这会有所帮助。

    【讨论】:

    • 是的,我明白了。问题是——我们的小程序确实需要访问文件系统。期望的行为是:用户打开页面,如果小程序无权访问用户的文件,则会显示一条消息。坏消息是 - JRE 需要很长时间才能启动、加载小程序并检查 fs 访问。所以我一直在寻找一种方法来以一种有点 hacky-workarounded-JS 的方式来做到这一点。
    猜你喜欢
    • 1970-01-01
    • 2014-10-02
    • 1970-01-01
    • 2014-05-25
    • 1970-01-01
    • 2010-09-29
    • 2011-02-23
    • 2019-11-10
    • 1970-01-01
    相关资源
    最近更新 更多