最近思考了一下wordpress主题怎么加授权,我最先是想到了JS判断域名的方式来实现授权,然而这想法很快就被刷掉了,因为JS授权容易被破解,只要一个审查元素即可,然后我又想到了PHP授权,这就比较安全了,因为PHP有多种加密方式,解密起来也要花很大功夫,只要就隔绝了很多人想破解主题的念头,php授权域名的思路如下
第一种
云端校验域名授权
客户端代码:
<?php$shouname = trim($_SERVER['SERVER_NAME']); //获取域名$shouurl = file_get_contents('https://www.ikxin.com/shouquan.php?domain='.$shouname); //获取服务端授权文件if(!empty($shouurl)){ echo "已授权!"; //授权成功}else{ die("未授权!"); //授权失败}?>
服务端代码:
<?php$domain = $_GET['domain']; //获取域名$Array = array('127.0.0.1','localhost','www.ikxin.com'); //授权域名列表echo in_array($domain, $Array) ? 'yes' : ''; //校验结果?>
域名授权代码可封装进函数,或者进行加密,对于常用的PHP加密形式,都有其破解的方法,比如Zend、mzphp2、ionCube等,如果授权的域名较多,可以在项目中增加域名字段,将域名写入数据库再进行读取和校验。
第二种
独立校验域名授权
<?phpfunction allow_domain(){ $is_allow=false; //获取不带端口号的域名前缀 $servername=trim($_SERVER['SERVER_NAME']); //授权域名列表 $Array=array("localhost","127.0.0.1"); //遍历数组 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();?>
使用方法
以上方法推荐使用第一种,因为第一种便于管理,将客户端代码写到wordpress主题全局PHP函数文件即可,然后再自己的服务端配置好域名授权,客户端的PHP文件可以自行加密,当然了,世界上没有无法解密的PHP代码。