博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php代码如何加域名授权?开源php项目如何保护版权 商业授权?
阅读量:5080 次
发布时间:2019-06-12

本文共 2408 字,大约阅读时间需要 8 分钟。

php在web开发领域是最热门的语言,也是开发项目的不二选择,许多PHP开发者说它是当今世界上最好的开发语言,php开发项目效率高,是因为开源项目太多了,不管是国内,还是国外,开源的框架,开源的CMS系统,开源的商城系统太多了,所以php的生态圈很好。如果你想对项目进行开源,那就需要对源码进行一个简单的版权保护,代码可以开源,但是项目的版权,所有权是你的。

php代码如何加域名授权?开源php项目如何保护版权 商业授权?

 

域名授权代码可封装进函数,或者进行加密,对于常用的PHP加密形式,都有其破解的方法,比如ZendGuard、ionCube等,如果授权的域名较多,可以在项目中增加域名字段,将域名写入数据库再进行读取和校验,此方法你可以封装成类或插件,下面给大家分享两种代码,大家可以学习一下。

php代码如何加域名授权?开源php项目如何保护版权 商业授权?

 

一.独立校验域名授权的方法:

function allow_domain(){    $is_allow=false;    //获取不带端口号的域名前缀    $servername=trim($_SERVER['SERVER_NAME']);    //授权域名列表    $Array=array("www.yunmasucai.com","www.zzphp.cn");    //遍历数组    foreach($Array as $value){        $value=trim($value);        $domain=explode($value,$servername);        if(count($domain)>1){            $is_allow=true;            break;        }    }    if(!$is_allow){        die("域名未授权!"); //授权失败    }else{        echo "域名已授权!"; //授权成功    }}allow_domain();

  

二.在线校验域名授权的方法:

/* * 服务端代码 *///获取域名$domain = $_GET['domain'];//授权域名列表$Array = array('www.yunmasucai.com','www.zzphp.cn');//校验结果echo in_array($domain, $Array) ? 'yes' : '';/* * 客户端代码 *///获取不带端口号的域名前缀$servername = trim($_SERVER['SERVER_NAME']);//获取服务端授权文件校验$verifyurl = file_get_contents('http://www.yunmasucai.com/data/upload/copyright.php?domain='.$servername);if(!empty($verifyurl)){    echo "已授权!"; //授权成功}else{    die("未授权!"); //授权失败}

  

这个只要对获取的域名 进行赋值就直接过了判断。所以对于程序员来说这个太容易猜出来了,即使是加密过的PHP。那么怎么处理?有的人有更复杂的授权方式,就是带上各种服务器的信息 还要加个KEY来作为授权码。再经过代码加密,似乎看起来很牛B了,可是如果源码一旦破解沦陷,所有的判断函数不就是 鱼肉么?有的人说 我代码加密了你怎么破解?

php代码如何加域名授权?开源php项目如何保护版权 商业授权?

 

还真别说,日前看到淘宝上有这样一个商品叫作:没有不能解密的代码,标价好像是10个大洋起。我去,一个起码万记的代码就这样被10元了,尽管店主文字申明了不能用于商业用途只供学习。于是shopnc采用了核心代码加密,利用URL的路由格式在搜索引擎来搜索出搭建这个站点的未授权域名,然后就给你发律师函了。这也不失为一种方案,所以理由也要有自己在的风格。那么PHP到底有没有这样一款或者一个很哇塞的授权方案呢?目前也没有什么好的解决方案?给大家提供个代码思路。

php代码如何加域名授权?开源php项目如何保护版权 商业授权?

 

function authorization($seed = '') {    $encode = $_SERVER['SERVER_SOFTWARE'] . $_SERVER['SERVER_NAME'] . $_SERVER['DOCUMENT_ROOT'] .        $_SERVER['SERVER_ADMIN'] . $_SERVER['SERVER_ADDR'] . PHP_VERSION . PHP_OS . __FILE__;    return md5 ($encode);}$authorization_key = 'www.yunmasucai.com';echo authorization($authorization_key);//这里是生成字符串验证$authorization_check = array('dd670852938815f3892d3c511cc8fceb','ddc976cc02bce5c3c22c4d7d201c0cae' );//授权字串,把生成的字符验证复制到这里来if (!in_array(authorization ($authorization_key), $authorization_check)) {    die('对不起,你的程序未经过小一授权!!');}

  

其实还有很多的思路,大家可以分享讨论一下,我只是总结了一部分,比如C 扩展加密,zendloader 加密等,不过那种方法,只要是能解决用户的需求就是好代码。

欢迎关注公众号:云码素材,交流分享! 云码素材原创作品,更多精品资源下载,技术分享请关注,私信云码素材!

转载于:https://www.cnblogs.com/3rocks/p/11199837.html

你可能感兴趣的文章
jQuery应用 代码片段
查看>>
MVC+Servlet+mysql+jsp读取数据库信息
查看>>
黑马程序员——2 注释
查看>>
用OGRE1.74搭建游戏框架(三)--加入人物控制和场景
查看>>
转化课-计算机基础及上网过程
查看>>
android dialog使用自定义布局 设置窗体大小位置
查看>>
ionic2+ 基础
查看>>
互联网模式下我们更加应该“专注”
查看>>
myeclipse集成jdk、tomcat8、maven、svn
查看>>
查询消除重复行
查看>>
Win 10 文件浏览器无法打开
查看>>
HDU 1212 Big Number(C++ 大数取模)(java 大数类运用)
查看>>
-bash: xx: command not found 在有yum源情况下处理
查看>>
[leetcode]Minimum Path Sum
查看>>
内存管理 浅析 内存管理/内存优化技巧
查看>>
hiho1079 线段树区间改动离散化
查看>>
【BZOJ 5222】[Lydsy2017省队十连测]怪题
查看>>
第二次作业
查看>>
【input】 失去焦点时 显示默认值 focus blur ★★★★★
查看>>
Java跟Javac,package与import
查看>>