给主题加上一个PHP域名授权

正文

今天有人来问我说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代码。

如果觉得我的文章对你有用,请随意赞赏

2 comments

  1. duke

    OωO 谢谢博主,正在研究这方面。感觉最关键的还是加密,太容易破解不行,太影响性能也不行,授权长期有效就得每次都检查server,有点不好弄。

    1. ikxin
      @duke

      这种授权方式本来就是小白级别的,而且php也没有不可逆的加密,要想实现更可靠的授权机制,还得想其他方案

Leave a Comment