最近我思考了一下 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也没有不可逆的加密,要想实现更可靠的授权机制,还得想其他方案