我刚刚在一个随机网站上遇到了一个 Java 小程序,我想启动它。
鉴于 Chrome 自古以来就与插件不兼容,我去 irc.mozilla.org 询问最好使用哪个旧版本的 Firefox,因为我知道最新版本已经删除了 NPAPI 插件支持,就像 Chrome 在 2015 年所做的那样。
我很快就在 IRC 上被告知去尝试 Java Web Start——后来我发现这是可行的Oracle 自己的建议. (今天我了解到,从 Java 9 开始,小程序已被弃用。)
但事情是这样的。自 Java 7u21 以来,Java Web Start 要求小程序必须经过签名;以前隐藏在设置中的“提示仍然运行未签名的小程序”选项早已不复存在。
因此,使用 Java Web Start 意味着要安装旧版本的 Java。哎呀。
但是... 如果我不得不降级,我还不如安装一个旧版 Web 浏览器(与我现有的浏览器一起),并从无缝小程序启动中受益!(当然,我知道将旧版 Web 浏览器用于其他任何用途都有风险。)
那么:推荐使用哪种 Web 浏览器/Java 版本组合来运行随机小程序?
我应该使用 Firefox 51 吗?我应该使用 Firefox 的一个分支吗?我应该从 Launchpad 中取出 Chromium 44?(我没有使用过 Ubuntu,但从未遇到过启动板软件包的共享对象问题。)我是否应该使用 Opera 12?(我是否应该有使用虚拟机?我还没有进行任何设置,而且目前也没有足够的 RAM。)
再次强调,我认识到使用旧版浏览器的安全风险。我的观点是,如果降级是我唯一的选择,那么它就不是那更糟糕的是,让旧浏览器与我的主浏览器一起运行,这样我就不必摆弄 .jnlp 文件,我可以直接转到包含小程序的页面的 URL。当然,如果出现 Java/JavaScript 互操作问题,这也可以解决该问题。
我在 serverfault 而不是超级用户上询问这个问题,因为我希望这个问题与在需要关注安全最佳实践的商业环境中运行良好的答案相关联。
就我而言,我只是希望我遇到的旧网页上的小程序能够轻松运行。(促使我提出这个问题的小程序并不在内部网上,不属于遗留系统的一部分。)
我可以忍受使用 JWS,但启动一个旧的浏览器来完成这项任务要好得多。
答案1
最佳做法是正确签名您的应用程序。
任何其他方法都会使您的应用程序无法抵御许多攻击,因此不适合专业用途。