gpt4 book ai didi

google-chrome-extension - 来自 Chrome 网上应用店的用户特定版本的扩展程序

转载 作者:行者123 更新时间:2023-12-04 19:33:32 27 4
gpt4 key购买 nike

我一直在为我的公司开发和维护一个 Chrome 扩展程序,每个客户都将在代码中被分配一个唯一的 ID。我们一直在使用 ID 来确定许可证状态并登录我们的服务(按月付费的付费延期)。

到目前为止,我们自己托管了扩展文件,并为每个客户扩展提供了唯一的更新 URL。这很好很简单;转到我们的网站,单击安装,您就完成了。然而,在最新的 Chrome 版本中,该安装过程已被 Google 阻止,因为他们现在要求用户通过将 CRX 文件拖放到 chrome://chrome/extensions/选项卡中来安装扩展程序。当然,除非您的扩展程序可以通过 Chrome 网上应用店获得 - 这导致了我的问题:

  • 我们不希望拖放式 CRX 安装 - 需要 Web Store。
  • 我们不希望 Web Store 上有多个版本的扩展(每个客户一个),因为每次我们更新扩展时,这都是一个维护 hell 。
  • 我们不想使用网上应用店许可,因为:
  • 它需要 OpenID 登录。
  • 我们将延期出售给有许多学生的学校,由学校支付账单 - 而不是学生。
  • 我们不想将我们的支付方式锁定在一个浏览器上,即我们希望能够通过我们的或服务器维持许可和支付。
  • 我们不希望用户输入许可证 key ,因为这对于数千名学生必须输入 key 的风险太大 - 而且它需要某种存储(cookies/localStorage),最终会被清除,需要许可证 key 重新输入。

  • 我不能 100% 确定我的陈述是完全正确的,所以如果我遗漏了什么,请随时启发我。

    如果是,问题是我们是否可以通过 Web Store(使用唯一 ID)为每个客户定制扩展,而不需要为每个 ID 发布一个扩展?

    作为一个附带问题,任何可能用另一种方法解决问题的答案也将被接受。

    最佳答案

    对于下面的答案,我假设您的应用是打包应用,而不是托管应用。

    我有一个与您当前的实现非常相似的解决方案,但为用户增加了一个额外的步骤。对于学生用户,该过程将如下所示:

  • 从网上应用店下载应用程序。该应用程序尚未运行,启动它只会显示“请单击您的学校/机构提供的激活链接”消息。
  • 单击托管在您的服务器(即您用来托管更新 URL 的服务器)上的链接,该链接看起来像 https://myserver.com/activateapp.php?custid=123456789 。您为您支持的每个机构托管一个此类链接,并且该机构的工作是向其学生提供链接。此链接激活应用程序。

  • 从实现的角度来看,它是这样工作的:
  • 在您的服务器上托管一个页面 https://myserver.com/activateapp.php 。服务器端,检查 custid 参数是否有效。如果不是,则发送 404 错误。
  • 您的应用程序有一个内容脚本被注入(inject)到 https://myserver.com/activateapp.php 中,它会扫描 URL 并挑选出客户 ID。应用程序找到 ID 后,会将其存储在 localStorage 中。由于无效的客户 ID 会产生 404 错误,因此您知道当内容脚本运行时,页面不是 404 错误;因此,它正在读取有效的客户 ID。
  • 每当应用程序想要查询您的服务时,它都会检查它在 localStorage 中是否有客户 ID。如果是,则使用该 ID;如果没有,它会显示一条消息,表明应用程序尚未激活。打包的应用程序永远不会删除它们的 localStorage,除非您的应用程序被编程为删除自己的存储空间,或者用户从控制台执行此操作。存储删除永远不会“意外”发生。即使是最强大的浏览器范围的数据/缓存清除也只会从网页中清除 localStorage,而不是从应用程序和扩展程序中清除。

  • 为了额外的安全性——如果你不希望人们随机猜测客户 ID——你可以添加一个额外的签名参数,比如 https://myserver.com/activateapp.php?custid=123456789&sig=2464509243 。这个额外的参数是客户 ID 的一些经过服务器验证的转换(理想情况下是加密签名或与数据库中的 ID 相关联的纯随机值),任何人都无法猜到。当对 activateapp.php 的请求到达服务器时,它会检查有效的客户 ID 和有效的相应签名。当然,这并不能阻止对有效链接具有合法访问权限的人将链接共享给未经授权的人,但我希望这是您的旧系统中存在的漏洞。

    关于google-chrome-extension - 来自 Chrome 网上应用店的用户特定版本的扩展程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11826207/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com