ProcessingJS代码权限

时间:2014-03-06 08:18:42

标签: javascript permissions processing

由于Java在1月份更新了其安全设置,我无法承受可靠的证书在线登录我的jar文件,即每年约200美元,我刚刚将Processing2 jar文件转换为Processing1.5 JavaScript文件。现在问题是,为了让访问者看到js输出,我必须让他们至少“读取”我的pde文件,而我不想公开我的源代码。

那么如何在不发布源代码的情况下展示我的作品呢?非常感谢!

/ var / www / html / visual:

下的处理文件夹
-rw-r--r--. 1 root root   2709 Sep 10 21:03 main.pde
-rw-r--r--. 1 root root    238 Mar  6 15:12 proj01.html
-rw-r--r--. 1 root root 231867 Mar  4 23:55 processing-1.4.1.min.js

html文件看起来像(所以访问者知道我的pde文件名):

<!DOCTYPE html>  
 <html>  
 <head>  
    <script src="processing-1.4.1.min.js"></script>

 </head>  
 <body>  
    <canvas data-processing-sources="main.pde"></canvas>  
</body>  
</html> 

并且自签名jar文件被Java Update51阻止,除非访问者手动将安全级别设置为最低级别。只有从Symantec或Godaddy等服务购买的证书才能让jar文件在浏览器中顺利运行。 enter image description here

2 个答案:

答案 0 :(得分:1)

是的,隐藏代码(以及任何其他资产)的方法很简单。它们不是防弹的,它与我编译代码一样接近,而不会过度偏执。你在这里看到的是一个自动执行的匿名函数,除了灰尘和灰烬之外什么也没有留下(当然还有正在运行的processing.js草图)。在该函数内部进行处理代码,base64编码(参见标记点,见下文以获取更多信息)

它还将导入库,设置画布并运行它。除了Processing集之外没有pde,没有脚本元素,没有canvas-id。除了全局Processing库对象中的某个地方之外没有对代码的引用,在5分钟后找不到它,所以我觉得它足够安全。)

(function(){
    var lib,code;
    code=atob("/*YOUR BASE64 ENCODED CODE GOES HERE*/");
    lib = document.createElement("script");
    lib.src="processing-1.4.1.min.js";
    document.head.appendChild(lib);
    lib.onload=function(){
        var canvas,pjs;
        canvas = document.createElement("canvas");
        document.body.appendChild(canvas);
        pjs = new Processing(canvas,code);
        this.onload=null;
}
})()

有关base64编码的其他信息: 此方法将任何内容转换为Datastring。 您使用btoa()进行编码,或使用atob()进行解码。有些网站会为你做编码,如果你的大文件不像你的情况那样在javascript中,那就更舒服了。

它可以应用于各种资产,因此可以创建具有声音和纹理的整个游戏,而无需外部资源。但它只是表示数据的另一种方式,它并不是真正“编译”的,因为编码不会永久地改变代码,除了在字符串上运行atob()之外,它不需要做任何事情,它会立即以原始形式返回。 / p>

有关如何运行脚本的其他信息: 您可以在dom树中的某处隐藏脚本标签(可能是最简单的解决方案)将其加载到外部javascript(甚至可以尝试使用模糊的文件名,省略.js扩展名或使用另一个扩展名)这里您还可以应用缩小。你的base64字符串很可能是你代码的95%,其余的将被缩小,几乎与编码数据无法区分。

在各方面都有很多方法可以改进,但我想坚持我认为对你最实用的方法。如果你想要更多,请问。

答案 1 :(得分:0)

你可以编辑html文件,不要包含你可以删除的pde文件的链接。 不过,您可以查看页面的html源代码。

您可以创建自签名证书来签署.jar文件。 Here是我几年前上传的自签名小程序的一个例子。 我已使用there instructions签名。

让访问者查看来源可能对他们有用。