【问题标题】:Licensing system for client side code web application客户端代码 Web 应用程序的许可系统
【发布时间】:2016-01-02 00:49:25
【问题描述】:

我有一个在 SharePoint 网站集上运行的客户端 Web 应用程序,每个网站集都有自己的唯一 ID。我想使用许可流程将应用锁定到网站集。

这是我正在尝试实施的挑战-响应流程:

  • 提示用户生成challenge code
  • challenge codesite_collection_id 通过一些函数处理的
  • 用户给我发电子邮件challenge code
  • private key 加密challenge code
  • 加密的结果被认为是我发送给用户的license key
  • 用户将license key 保存到应用程序中

验证过程:

  • 在应用加载时,检索license key
  • 使用存储在应用程序中的public key 解密license key
  • 结果是用户之前发送的challenge code
  • challenge code 恢复为site collection id
  • 检索当前正在运行的site collection id 应用程序
  • 比较两者以确定license key是否有效

这有意义吗?我不确定的一件事是公钥/私钥的东西,以及是否有办法在 JavaScript 中做到这一点。


我知道要 100% 保护客户端应用程序是不可能的。我只是在寻找一些东西来阻止某人轻松分发应用程序

【问题讨论】:

标签: javascript security encryption cryptography


【解决方案1】:

您可以在 javascript 中使用公钥/私钥,我刚刚在我最近的项目中使用过。检查openpgp.js。你描述的场景看起来不错。您也可以使用每日令牌客户端会要求您的服务器能够运行,sharepoint 站点可能会发送您给他们的令牌并请求每日许可证,并且您发送许可证代码和一个有效期为 24 小时的令牌。

【讨论】:

  • 令牌解决方案会更安全,但我正在寻找一种完全隔离且不需要与外部服务器通信且通常更易于维护的解决方案。 opengp.js 看起来很有前途,我会玩弄它。感谢您的建议。
  • np,关于 openpgp.js,没有太多关于它的文档示例,但它很容易理解,而且它确实是合法的实现。工具箱里的好工具。
  • 不幸的是,实际上可能无法使用这个,兼容性没有足够高的覆盖率。 Explorer 11+ 是受支持的,但我的大多数用户都会低于此。
  • 在这种情况下,您可以尝试 crypto.js (code.google.com/p/crypto-js)。这也很好。 openpgp.js 需要 ie11,因为它使用浏览器的原生 webcrypto(它提供了更可靠的加密,因为它可以在操作系统中自然地产生随机,javascript 的随机函数实际上是伪随机的)。
  • 谢谢,我会进一步调查。我的项目中有它,但我不知道如何做我想做的事,或者我的想法是否有意义
【解决方案2】:

经典设置包括发布免费软件版本,然后通过 AJAX 验证许可证密钥来解锁它,并在成功后启用商业功能:

配置需要包含许可证密钥,否则您将在视频顶部看到 Flowplayer 文本。安装发生在 HTML 页面上的 SCRIPT 标记之间。许可证密钥转到 flowplayer 调用的第三个参数,它包含在 flowplayer 配置对象中。

    flowplayer("player",
       "http://releases.flowplayer.org/swf/flowplayer.commercial-3.2.18.swf",{
// license key from your account
key: '#$7162d2d730cf607ac6d'
    });

注意:当您在 IFRAME 中部署商业播放器时,您必须选择 iframe 源域的许可密钥,即 iframe 的 src 属性中的域。

一个更现代的选择是:

如果您想托管自己的播放器库,可以在仪表板的高级帐户页面中找到您的许可证密钥和最新的 JW 播放器文件。下载后,您需要在自己的服务器上托管 jwplayer.js。在配置您的网页时,您需要指向您的 jwplayer.js 副本并定义您的自托管许可证密钥。这是一个代码示例:

<script src="//mywebsite.com/jwplayer/jwplayer.js" ></script>
<script>jwplayer.key="ABCdeFG123456SeVenABCdeFG123456SeVen==";</script>

参考文献

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-16
    • 2013-12-06
    • 1970-01-01
    • 1970-01-01
    • 2018-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多