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

9,773 3

最近我思考了一下 WordPress 主题如何进行授权。最初,我想到了通过 JS 判断域名的方式来实现授权,然而这个想法很快就被否定了,因为 JS 授权 容易被破解,只要通过审查元素就能轻松查看。接着,我考虑了 PHP 授权,这种方式相对安全,因为 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
<?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
<?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)
  1. Chrome 75 Windows 7

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

    1. Chrome 75 Mac OS 10.14.5Apple Macintosh

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

  2. Chrome 86 Windows 10

    请问博主,如果是js代码怎么弄授权呢

发布评论

© 2026 一纸忘忧. 保留所有权利.

一纸忘忧的个人网站,关于技术探索与日常生活,记录 Web 开发、服务端与 DevOps 实践,分享软件工具、数码体验,以及代码之外的见闻与思考。