我有一个扩展程序(它是从 Chrome 安装的,我只向某些人授予测试人员访问权限)并且我需要当一个人安装它时,他无权访问它(即,他无权访问代码,因为如果您愿意,您可以找到带有代码的文件夹),因为如果一个人找到带有代码的文件夹,他可以将所有代码发送给另一个人,并且他可以使用扩展名。告诉我,是否可以将部分扩展代码传输到服务器,但它仍然适用于客户端?或者,您如何使用 Chrome API 在扩展程序中通过 google 帐户实现绑定?
我有一个扩展程序(它是从 Chrome 安装的,我只向某些人授予测试人员访问权限)并且我需要当一个人安装它时,他无权访问它(即,他无权访问代码,因为如果您愿意,您可以找到带有代码的文件夹),因为如果一个人找到带有代码的文件夹,他可以将所有代码发送给另一个人,并且他可以使用扩展名。告诉我,是否可以将部分扩展代码传输到服务器,但它仍然适用于客户端?或者,您如何使用 Chrome API 在扩展程序中通过 google 帐户实现绑定?
你的问题的答案是否定的。谦卑自己。无论您做什么,无论多么复杂,都将花费不到您十分之一的时间。完全不用担心,没有人需要你的代码。
扩展是专门制作的,因此不能拒绝对扩展源的访问。这是必要的,以便您可以查看扩展程序的功能。如果事实证明扩展程序正在做一些不雅的事情,那么扩展程序可以被删除或更糟。
因为,不,您不能隐藏扩展的来源,这是设计使然。
您可以进行密钥管理(您需要使用电子签名)
通过唯一值(iron id 或绑定到某个帐户)颁发密钥
标识符应该
在第一次启动时很容易验证 将其发送到服务器 + 随机
在您签名并发回的服务器上的密钥(您自己一次性将其提供给测试人员) 。扩展程序将接收到的包存储在其存储中并比较标识符(在启动时,可疑操作等)
不要忘记将许可证系统更深入地输入代码,模糊,最小化
我看到几个选项:
只需绑定到罂粟地址即可。
一般情况下,在chrome扩展中获取不到电脑的罂粟地址,但是可以尝试这样做——https: //stackoverflow.com/a/24386579/6580397
用户输入您给他的密钥,这些密钥可以简单地随机生成,并且有效密钥列表存储在服务器上。
程序第一次启动后,将电脑的罂粟地址发送给服务器,服务器将罂粟地址分配给密钥。并返回一个积极的回应。
因此,每次启动程序时,都会向服务器请求密钥和 MAC 地址之间的匹配。如果它们匹配,那么我们返回以允许程序工作,如果不匹配,则禁止它。
为了更难破解这个算法,我们将混淆应用程序。
检查来自不同 IP 的序列号的使用
不绑定到 MAC 地址。当有分机向服务器发出查询序列号的请求时,我们查看请求来自哪个IP。如果多次发现几乎同时有来自不同 IP 的请求,那么我们将采取行动。不需要立即禁止序列号,您可以暂时禁止旧 IP 并警告此人呼叫是从不同的计算机同时发出的。
登录+密码
代替串口,可以存储登录名和密码(即用户被授权在他的登录名和密码下使用软件),这种方法比较好,因为当用户用自己的名字登录时,如果他想要要将程序转移给某人,他必须转移自己的姓名和密码,但是从服务器端,使用上面的算法,您可以跟踪请求来自不同的计算机,这已经威胁到措施,并且您将了解哪个用户非法提供了该程序。比如合同的存在,这可以被认为是盗窃,这在心理上比仅仅给某人一个序列号更愚蠢。
我自己加
我不会处理所有这些困难。与整个插件相比,创建许可系统可能需要更多时间,使开发和使用复杂化,同时仍然不是 100% 安全。
我想你打算保护一些业务逻辑不被窥探和执行。简短的回答:没有直接的方法来保护扩展代码。
但是,由于您有兴趣将逻辑传输到服务器端是可能的,但并非总是如此。这取决于您的扩展的技术实现。
它意味着将代码划分为子模块,其中一些在服务器上执行并与扩展(HTTP、WebSocket、Chrome 消息传递)交互。
移植代码的能力受以下问题的影响:
同时,在成功将代码传输到服务器的情况下,您将需要一个授予用户访问权限的系统:访问令牌、网站注册等。
这些问题没有一般的答案,熟悉扩展逻辑的经验丰富的专家将能够为您提供建议。
混淆?我没有这样做,但我认为可以混淆混淆后的代码。如果是这样,那么您需要使用不同的算法来混淆. 如果没有,那么最强大的算法,如果这样的 秘密开发。顺便说一句,问题就在答案中:这个扩展是什么?