客户端代码Web应用程序的许可系统

时间:2016-01-02 00:49:26

标签: javascript security encryption cryptography

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

这是我试图实施的挑战 - 响应流程:

  • 提示用户生成challenge code
  • challenge code site_collection_id通过某项功能处理
  • 用户通过电子邮件向我发送challenge code
  • 使用challenge code
  • 加密private key
  • 加密结果被视为我发送给用户的license key
  • 用户将license key保存到应用程序中

验证流程:

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

这有意义吗?我不确定的一件事是公钥/私钥,以及是否有一种方法可以在JavaScript中执行此操作。

我知道100%安全的客户端应用程序是不可能的。我正在寻找能阻止某人轻松分发应用程序的东西

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

  

配置需要包含许可证密钥,否则您将看到在视频顶部显示的Flowplayer文本。安装发生在HTML页面上的SCRIPT标记之间。许可证密钥转到flowplayer调用的第3个参数,它包含在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 Player文件。下载后,您需要在自己的服务器上托管jwplayer.js。配置网页时,您需要指向您的jwplayer.js副本,并定义自托管许可证密钥。这是一个代码示例:

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

<强>参考