时间:2023-02-05 01:16:01 | 来源:建站知识
时间:2023-02-05 01:16:01 来源:建站知识
php在web开发领域是最热门的语言,也是开发项目的不二选择,许多PHP开发者说它是当今世界上最好的开发语言,php开发项目效率高,是因为开源项目太多了,不管是国内,还是国外,开源的框架,开源的CMS系统,开源的商城系统太多了,所以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了,可是如果源码一旦破解沦陷,所有的判断函数不就是 鱼肉么?有的人说 我代码加密了你怎么破解?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 加密等,不过那种方法,只要是能解决用户的需求就是好代码。关键词:授权,商业,版权,项目,保护