替换applet的替代技术?

时间:2014-01-11 18:40:04

标签: java security applet

我有一个(无符号)小程序,可以让你绘制一个逻辑电路并在屏幕上测试它(有点像Electronics Workbench),然后它将电路序列化(内部形式,而不是可视化表示)并发送它运行一系列自动化测试并生成性能报告的服务器。这是一个更大的Web应用程序的一个小但重要的部分。

然而,最新的Java插件现在说:

  

运行此类未签名的应用程序将在未来版本中被阻止,因为它可能不安全且存在安全风险。

现在,自签名它仍然显然可以工作(现在),但是然后代码运行在沙盒外面,这让我觉得这是一种愚蠢的做事方式,即使我的代码当然完全没有错误! (我可以对您购买桥梁感兴趣吗?)在Oracle网站上进一步阅读我看到:

  

平台不会拒绝执行Java应用程序......未来的更新版本可能包含其他更改,以限制不安全行为,如未签名和自签名应用程序。“

(听起来这意味着“未来更新 拒绝执行Java应用程序” - 除非您定期向Thwaite或Verisign付款并公开用户在沙箱外运行的代码。)

他们也说

  

“即使用户体验中最小的变化也有时会很麻烦”。

(不开玩笑。)

  

“我们已经考虑了变化如何影响用户体验。鉴于目前浏览器中Java安全性的环境,代码签名是保护Java用户的宝贵安全控制。”

好吧,我不知道如何在这种情况下继续使用Java。球门柱已被移动(再次),现在我正在寻找一支不同的足球队......或者更确切地说,我正在寻找一种替代技术,让我继续做我现在所做的事:拖拽和放大丢弃电路元件,通过在输入和输出或其他连接之间拖动来创建连接,最后采用图表的内部形式,并以可以解码和运行的形式将其喷射到服务器,最好是通过创建的完全相同的代码图表,以避免版本化头痛。还有一些安全的东西,它不会破坏本地文件系统,或者只是因为我签了它。

现在甲骨文已经让我的生活成为一场噩梦吗?有人可以建议我下一步应该去哪看吗?

3 个答案:

答案 0 :(得分:3)

  

(听起来它意味着“未来的更新将拒绝执行Java应用程序” - 除非您定期向Thwaite或Verisign付款并向用户展示在沙箱外运行的代码。)

使用JNLP启动的签名小程序仍然可以使用沙盒。


但如果你真的想避免它..

我认为您所描述的内容可以使用JavaScript提供逻辑,并使用HTML 5 canvas进行渲染。

我会避免使用Flash,因为它也容易受到安全漏洞的影响。这就像挖掘自己一个全新的洞来陷入困境。

答案 1 :(得分:0)

我无法评论你发现的有关applet的内容,因为我从来没有写过。

如果您想远离它们,也许您唯一的选择(在使用Java的同时)是Web应用程序,其中代码最多位于服务器端,您可以直接在浏览器中与软件进行交互。在客户端javascript(和js相关的库,如JQuery)被使用,虽然我不能详细说明它,因为我还不太了解Java EE堆栈。
我不确定您是否可以获得与您目前在applet中相同的用户体验,尤其是电子应用程序。但它可能提供大多数Java类的最高代码重用。

我使用过Vaadin,它是一个框架,几乎可以将所有编码移动到服务器端(如果要创建插件,只需要编写客户端代码)。我也听说过Zk,但我从来没有用过它,所以我对此一无所知。

答案 2 :(得分:0)

如果您在浏览器中将Java插件阻止到版本SE 7 U11(jre-7u11-windows-i586.exe),您仍然可以在网页中运行未签名的Java小程序。当然,您必须阻止自动Java更新使用" C:\ Program Files(x86)\ Java \ jre7 \ bin \ javacpl.exe" 在您找到JAva applet的替代方案之前,我可以通过这种方式生存一段时间。 在HTML5中,调用apllet的标签现在是对象,语法有点不同:

<object codetype="application/java" 
        classid="yourApplet.class"
        codebase="http://www.yourserver ..."
        archive="YourJarFile.jar"
        width="x" height="y">
        <param name="paramName1" value="paramValue1"/>
        <param name="paramNamei" value="paramValuei"/>
</object>