最近我思考了一下 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 代码 加密有一定的难度,但世界上没有绝对无法解密的代码。

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