正文
最近思考了一下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等,如果授权的域名较多,可以在项目中增加域名字段,将域名写入数据库再进行读取和校验。
第二种
独立校验域名授权
<?php
function 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代码。
3 条评论
请问博主,如果是js代码怎么弄授权呢
OωO 谢谢博主,正在研究这方面。感觉最关键的还是加密,太容易破解不行,太影响性能也不行,授权长期有效就得每次都检查server,有点不好弄。
这种授权方式本来就是小白级别的,而且php也没有不可逆的加密,要想实现更可靠的授权机制,还得想其他方案