如何保护 Chrome 扩展程序

9

Chrome扩展被打包为zip档案。安装后,它会被放在文件夹中,用户可以访问它。用户还可以重写扩展甚至克隆新扩展。

我该如何保护扩展不被用户修改和克隆? 我发现dll文件(可编译)的可能性 - 但这并不是很好。

4个回答

10

如果您有一些专有代码(例如,特殊算法需要保密等),并且您的目标是Chrome浏览器 - 我建议使用Native Client。Nacl允许在浏览器中运行C/C++代码。它非常强大,您可以确信它将非常难以被其他人解析您的二进制文件。


7

这个前提看起来很简单。默认情况下,浏览器解释HTML / Javascript,而与页面一起运行的Chrome扩展程序也是如此。

一种方法是混淆您的javascript代码,或依赖于NPAPI编译的二进制插件,或使用NaCL。

在Chrome禁止混淆扩展程序之后,混淆代码可能不再是一个解决方案:https://dev59.com/7loU5IYBdhLWcg3wQ1V3#49509913


所以:混淆工具:http://www.javascriptobfuscator.com/default.aspx 和 https://dev59.com/03VC5IYBdhLWcg3wvT_g - mpz

3

目前没有办法隐藏Chrome扩展程序的源代码,这也意味着用户或竞争对手都可以查看。

在Chrome的网上商店常见问题解答中有这样一句话:

我能在商店里销售扩展吗? 目前还不能,但这个功能即将推出。

你可以等待该功能推出,或尝试以下替代方案:

  • 混淆你的Javascript源代码:更多详情请参考如何混淆(保护)JavaScript?

  • 在远程服务器上保留关键逻辑,并从后台脚本发起Ajax调用与服务器进行通信。

如果在清单中定义了跨域权限,Chrome扩展程序可以免除“同源策略”的限制:

普通的网页可以使用XMLHttpRequest对象从远程服务器发送和接收数据,但它们受到“同源策略”的限制。扩展程序则没有这种限制。只要首先请求跨域权限,扩展程序就可以与其来源之外的远程服务器通信。

在清单中定义以下内容:

{
    "name": "your extension",
    ...
    "permissions": [
        "http://www.yourserver.com/"
    ],
    ...
}

2

问题在于当你部署到Chrome扩展应用商店时,它无法获得批准。 - John Yepthomi
@JohnYepthomi,你找到解决方案了吗? - zakaria kasmi
3
@zakariakasmi 它允许代码最小化,但禁止混淆的代码。你不能隐藏你的源代码。你需要依赖服务器端来处理敏感数据,并通过扩展的 API 访问它。据我所知,没有其他方法可以解决这个问题。 - John Yepthomi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接