保护Javascript中的内容

时间:2011-05-26 16:23:07

标签: javascript

我想将我的一个游戏移植到WebGL,但它使用我从第三方获得许可的声音和图像。它会违反许可证,只是直接从Web服务器上提取未受保护的文件。

之前,我通过以我自己的文件格式嵌入一堆这些文件来解决这个问题,但我不确定我是否可以从文件中读取X个字节数,然后将其传递给Javascript并说“嘿,这是一个png形象。“那可能吗?还有其他保护文件的好方法吗?

5 个答案:

答案 0 :(得分:3)

如果这些东西必须在用户的浏览器中结束,那么,它就在用户的浏览器中。除了混淆之外,你无法保护它,如果你保护的东西具有实际价值,这完全是浪费时间。 (按照这种方式思考:如果这是非常有价值的东西 - 意味着如果有人非法获得它会遭受相当大的损失,并且小偷会获得相当大的收益 - 那么克服混淆所需的微小努力显然是值得的。小偷。)

答案 1 :(得分:1)

如果要保护JS文件中的内容,则需要通过定义作为函数调用结果的对象来创建JS持久对象。

像这样......

var imageContainer = function(protectedImageContainer) {
        var that = {};
        that.getImage = function () { 
              // bytes -> image transform would happen here.
              return protectedImageContainer.data; 
        };
        return that;
};

在此示例中,protectedImageContainer.data受保护且防篡改,只能通过getImage方法访问。

这与阻止右键单击“另存为...”一起可以让您更接近您想要的位置。

答案 2 :(得分:0)

你无法保护javascript中的东西,因为它在客户端执行,你做的任何混淆或“保护”文件都可以由愿意这样做的用户撤消。

答案 3 :(得分:0)

这就是诀窍:

var i = new Image();
i.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAIAAAACUFjqAAAAAXNSR0IArs4c6QAAABJJREFUeJxj+N/wHw9iGJXGhgDu6Pk5cOz+IwAAABF0RVh0Q29tbWVudAB0RVhUIHRleHTAVE3RAAAAAElFTkSuQmCC';

然后,如果你把那根绳子嵌入某处隐藏起来并乱夺它,它就应该远离那些悬而未决的果实。

答案 4 :(得分:-2)

您的许可是否允许您以加密形式将资源存储在Web服务器上?如果这不是一个选项,那么你可能不得不使用可以封装媒体的东西 - 也许是Java Applets。