Chrome扩展被打包为zip档案。安装后,它会被放在文件夹中,用户可以访问它。用户还可以重写扩展甚至克隆新扩展。
我该如何保护扩展不被用户修改和克隆? 我发现dll文件(可编译)的可能性 - 但这并不是很好。
Chrome扩展被打包为zip档案。安装后,它会被放在文件夹中,用户可以访问它。用户还可以重写扩展甚至克隆新扩展。
我该如何保护扩展不被用户修改和克隆? 我发现dll文件(可编译)的可能性 - 但这并不是很好。
如果您有一些专有代码(例如,特殊算法需要保密等),并且您的目标是Chrome浏览器 - 我建议使用Native Client。Nacl允许在浏览器中运行C/C++代码。它非常强大,您可以确信它将非常难以被其他人解析您的二进制文件。
这个前提看起来很简单。默认情况下,浏览器解释HTML / Javascript,而与页面一起运行的Chrome扩展程序也是如此。
一种方法是混淆您的javascript代码,或依赖于NPAPI编译的二进制插件,或使用NaCL。
在Chrome禁止混淆扩展程序之后,混淆代码可能不再是一个解决方案:https://dev59.com/7loU5IYBdhLWcg3wQ1V3#49509913
目前没有办法隐藏Chrome扩展程序的源代码,这也意味着用户或竞争对手都可以查看。
在Chrome的网上商店常见问题解答中有这样一句话:
我能在商店里销售扩展吗? 目前还不能,但这个功能即将推出。
你可以等待该功能推出,或尝试以下替代方案:
混淆你的Javascript源代码:更多详情请参考如何混淆(保护)JavaScript?
在远程服务器上保留关键逻辑,并从后台脚本发起Ajax调用与服务器进行通信。
如果在清单中定义了跨域权限,Chrome扩展程序可以免除“同源策略”的限制:
普通的网页可以使用XMLHttpRequest对象从远程服务器发送和接收数据,但它们受到“同源策略”的限制。扩展程序则没有这种限制。只要首先请求跨域权限,扩展程序就可以与其来源之外的远程服务器通信。
在清单中定义以下内容:
{
"name": "your extension",
...
"permissions": [
"http://www.yourserver.com/"
],
...
}
我正在使用Gulp插件进行JavaScript混淆。它不会破坏扩展的代码。