我有一个(未签名的) applet,它允许您绘制一个逻辑电路并在屏幕上测试它(有点像电子工作台),然后它会序列化电路(内部形式,而不是视觉表示),并将其发送到服务器,在服务器上运行大量自动测试并生成性能报告。这是大得多的网络应用程序中一个很小但很关键的部分。
然而,最新的Java插件现在说:
在将来的发行版中,运行这样的未签名应用程序将被阻止,因为它可能不安全,而且存在安全风险。
现在,自我签名显然仍然有效(目前而言),但是代码运行在沙箱之外,这让我觉得这是一种愚蠢的做事方式,尽管我的代码当然完全没有bug!(我能请你买一座桥吗?)在Oracle网站上进一步阅读我可以看到以下内容:
平台不会拒绝Java应用程序的执行..。未来的更新版本可能包括额外的更改,以限制不安全的行为,如未签名和自签名的应用程序。“
(这似乎意味着“未来更新将拒绝执行应用程序”-除非您定期向Thwaite或支付费用,并向用户开放运行在沙箱之外的代码。)
他们还说
“即使用户体验中最小的变化有时也很麻烦”。
(别开玩笑了)
“我们已经考虑了变化如何影响用户体验。鉴于当前浏览器中围绕Java安全的气候,代码签名对于保护Java用户来说是一项有价值的安全控制。”
在这种情况下,我不知道如何继续使用Java。门柱又被移动了,现在我正在寻找另一支球队.或者更准确地说,我正在寻找一种替代技术,可以让我继续做我现在做的事情:拖放电路元件,通过在输入和输出或其他连接之间拖动来创建连接,最后以图表的内部形式并以一种可以解码和执行的形式将其喷射到服务器上,最好是通过创建图表的完全相同的代码来避免版本问题。以及一些安全的东西,它不能仅仅因为我签了名就破坏本地文件系统或任何东西。
既然甲骨文已经把我的生活变成了一场噩梦,谁能建议我下一步该去哪里呢?
发布于 2014-01-11 19:35:55
(这似乎意味着“未来的更新将拒绝Java应用程序的执行”-除非您定期向Thwaite或Verisign付款,并将用户暴露给运行在沙箱之外的代码。)
使用JNLP启动的签名小程序仍然可以是沙箱。
但如果你真的想避免..。
我认为您所描述的内容可以使用JavaScript作为逻辑和HTML5 canvas
用于呈现。
我会避免Flash,因为它也容易受到安全漏洞的影响。这就像给自己挖一个全新的洞,让自己陷入困境。
发布于 2014-01-11 19:54:05
我不能评论你对applet的发现,因为我从来没有写过。
如果你想离开它们,也许你唯一的选择(在使用Java的时候)是web应用,在那里,代码大部分在服务器端,并且你直接在浏览器中与你的软件交互。在客户端javascript (以及与js相关的库,如JQuery)上使用,但我不能详细说明它,因为我还不太了解Java堆栈。
我不确定你是否能得到100%的用户体验,就像你目前在你的小应用程序中一样,尤其是对于一个电子应用程序。但是它可能提供了大多数Java类中最高的代码重用。
我使用过瓦丁,它是一个将几乎所有代码都移动到服务器端的框架(如果您想要创建加载项,只需要对客户端进行编码)。我也听说过Zk,但我从未使用过它,所以我什么也不能说。
发布于 2017-03-05 18:06:04
如果您在浏览器中阻止您的java插件到SE 7 U11 (jre-7u11-windows-i586.exe)版本,您仍然可以在网页中运行未签名的Java小程序,当然,您必须用"C:\Program (x86)\Java\jre7\bin\javacpl.exe“阻止自动Java更新,这样您就可以在找到替代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>
https://stackoverflow.com/questions/21066333
复制相似问题