Chrome 扩展被打包到 zip 存档中。设置后,它安装在文件夹中,用户可以访问它。他也可以重写扩展,甚至克隆到新的扩展。
我如何保护扩展免受用户修改和克隆?我发现 dll 文件的可能性(可以编译) - 但它不是很好。
Chrome 扩展被打包到 zip 存档中。设置后,它安装在文件夹中,用户可以访问它。他也可以重写扩展,甚至克隆到新的扩展。
我如何保护扩展免受用户修改和克隆?我发现 dll 文件的可能性(可以编译) - 但它不是很好。
如果您有一些专有代码(例如,您想要保持安全的特殊算法等)并且您的目标是 Chrome - 我建议您使用Native Client。Nacl 让您在浏览器中运行 C/C++ 代码。它非常强大,您可以确定有人很难进入您的二进制文件。
前提似乎很简单。默认情况下,浏览器解释 HTML/Javascript,与页面一起运行的 chrome 扩展也是如此。
一种方法是混淆您的 javascript 代码,或依赖 NPAPI 编译二进制插件,或使用 NaCL
在 Chrome 禁止混淆扩展后,混淆代码可能不再是解决方案:https ://stackoverflow.com/a/49509913
目前,您无法向用户或竞争对手隐藏您的 Chrome 扩展程序源代码。
Chrome网上商店 faq中有一条声明:
我可以在商店中出售扩展程序吗?还没有,但此功能即将推出。
您可以等待此功能或尝试以下替代方案:
混淆您的 Javascript 源代码:查看更多详细信息如何混淆(保护)JavaScript?
将您的关键逻辑保存在远程服务器上,并从后台脚本进行 Ajax 调用以与服务器通信
如果清单中定义了跨域权限,则 Chrome 扩展程序不受“同源策略”的约束:
常规网页可以使用 XMLHttpRequest 对象从远程服务器发送和接收数据,但它们受到同源策略的限制。扩展并没有那么有限。扩展程序可以与其源之外的远程服务器通信,只要它首先请求跨域权限。
在清单中定义以下内容:
{
"name": "your extension",
...
"permissions": [
"http://www.yourserver.com/"
],
...
}
我正在使用Gulp 插件进行 JavaScript 混淆。它不会破坏扩展程序的代码。