授权-解决方案

授权需求1、 基于根域名授权,同一个域名的不同子域名可以使用2、 授权必须有验证,也就是安装时通过授权码与域名配对,最好有一个与授权服务器通讯的机制,也就是联机授权,二是部分代码在授权服务器上,最简单

授权需求

1、 基于根域名授权,同一个域名的不同子域名可以使用

2、 授权必须有验证,也就是安装时通过授权码与域名配对,最好有一个与授权服务器通讯的机制,也就是联机授权,二是部分代码在授权服务器上,最简单的方式就是加密一个CSS ,而这个CSS 放在我们授权服务器

3、 授权文件在核心代码里面,但是要求对其他人二次开发没有影响。也就是不需要知道授权机制可以开发

4、 必须有域名授权管理系统:前期只需要同系统可以查询到域名是否授权,管理员或者有一定权限人可以通过系统添加域名做到授权,再有一行就是技术支持到期时间查询

5、 具体域名授权希望是有2个地方限制,一个是安装的时候限制,另外一个是通过基础应用通知的时候限制,如果没有通过验证的程序在会提示盗版

6、 PHP 代码加密考虑http://www.phpjm.net/buy.html 7、 参考实现方式

授权解决方案

授权服务器被动链接的解决方案

分析:

根据需求。考虑到有两种授权方式:

1、生成授权文件存放到网站跟目录,

2、将授权信息写入SQL 中/文件中,

第一种要实现授权需求需要服务器支持。第二种只需进行代码修改即可。

将授权信息存放于SQL 中/文件中:

授权需求基于根域名授权。及thinksns.com 顶级域名下面的www.thinksns.com;test.thinksns.com;coc.thinksns.com...... 都可以获得授权信息。

我们可以将授权码(cod 码)于当前站点的域名以CURL (比较隐秘的方式)或其他方式传递给授权服务器。并接收服务器回传信息。

这样无论子域名网站部署到任何IP 地址上都可以获得授权。

,

站点在开发中可能要记过好几个环境进行开发测试。

并且不同环境的网络通讯状态也不相同。大致可以分为以下几种情况。

1、开发环境,并且开发环境直接在本地电脑中(无法和授权服务器连接通讯),

2、网络环境中(新建站点-从压缩包直接安装)(可以和授权服务器连接通讯),

3、网络环境中(已有站点-从其他地方挪移到当前环境)(可以和授权服务器连接通讯),

4、正式环境(新建站点-从压缩包直接安装),

5、正式环境(已有站点-从其他地方挪移到当前环境)。

授权信息不能影响开发工作。所以挪移站点和无网状态下都必须获得开发全部权限。

当环境无法联网时。我们需要在环境中存储开发环境的cod 码以及开发用的加密串。

当新建站点-从压缩包直接安装并且可以和服务器通讯时。如果用户安装填写了有效的授权码(cod 码)可以正式授权。如果用户没有填写授权码(cod 码),则默认添加开发测试信息。

这样可以保证不影响开发环境已经测试环境。

对于站点的挪移。要实现授权我们要在前台登录时做一次授权验证。如果授权成功重置验证信息。

,

在安装新功能时,我们也可以做一步验证操作。

在这几部操作中。我们需要记录的信息有

1、cod 码

2、URL (域名)进行迁站验证

3、加密串

加密串中可以包含一下信息:授权到期时间(扩展有期限的授权),授权插件(扩展插件控制)可以包含核心样式文件信息。或者一个项目的核心方法。

以上几步基本可以解决网站授权需求。

,

,

授权服务器主动链接的解决方案

如我们可以在核心JS 里面加上触发条件在一定时间内; 给我们的授权服务器发送域名通知。 我们可以根据我们的核心代码反向的,找到我们的代码部署位置。并通过预留授权接口授权该部分代码。

这么搞似乎比较阴险。

这样搞对授权服务器没有压力。而且可以防止核心代码泄露。就是很阴险,要在核心里面留门。

域名授权管理系统

域名授权管理系统,根据需求包括两部分。

一、授权验证接口,

二、授权信息管理。

授权验证接口:

这部分是用于授权验证信息的验证。按照不同验证步奏返回不同验证信息。可能我们每个项目的插件都是不同的。所有我们的返回值及加密串需要设计自定义部分。 授权信息管理:

授权信息管理是,对于授权域名的增删改查等功能的操作,以及授权码的管理操作。由于域名验证返回值得不确定性,我们应该预留一些字段用于这块的填充。

标签: