zoukankan      html  css  js  c++  java
  • php代码如何加域名授权?开源php项目如何保护版权 商业授权?

    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 加密等,不过那种方法,只要是能解决用户的需求就是好代码。

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

  • 相关阅读:
    HDU4474 Yet Another Multiple Problem BFS搜索
    HDU4473 Exam 数学分析
    2013ACM多校联合(4)
    POJ1273 网络流...
    HDU4472 Count 递推
    POJ1149 PIGS 网络流
    UVA10881 Piotr's Ants 想法题
    javascript js string.Format()收集
    修改 设置 vs.net 网站 调试 设为 起始页
    【转】HTML5杂谈 概念与现行游戏 割绳子 宝石迷阵
  • 原文地址:https://www.cnblogs.com/3rocks/p/11199837.html
Copyright © 2011-2022 走看看