// WordPress插件入口文件示例:index.php
// 第一步:定义插件常量
define('MY_PLUGIN_PATH', plugin_dir_path(__FILE__));
define('MY_PLUGIN_URL', plugin_dir_url(__FILE__));
define('MY_PLUGIN_VERSION', '1.2.0');
// 第二步:License授权验证逻辑
function my_plugin_check_license() {
// 获取当前站点域名
$current_domain = $_SERVER['HTTP_HOST'];
// 这里替换成你自己的授权校验接口地址,也可以做本地签名校验
$license_server = 'https://your-license-server.com/api/check';
// 每个客户购买时生成的唯一授权码,交付时写入客户站点的wp-config.php或者配置文件
$license_key = defined('MY_PLUGIN_LICENSE_KEY') ? MY_PLUGIN_LICENSE_KEY : '';
if (empty($license_key)) {
return new WP_Error('license_error', '未检测到插件授权码,请购买正版授权');
}
// 请求授权服务器校验
$response = wp_remote_get($license_server, [
'timeout' => 10,
'body' => [
'license_key' => $license_key,
'domain' => $current_domain,
'plugin' => 'my-premium-plugin'
]
]);
if (is_wp_error($response)) {
return new WP_Error('license_error', '授权校验失败,请检查网络连接');
}
$body = json_decode(wp_remote_retrieve_body($response), true);
if (empty($body['success']) || $body['domain'] !== $current_domain) {
return new WP_Error('license_error', '授权无效,当前域名未授权使用该插件');
}
return true;
}
// 第三步:校验通过再加载加密的核心代码
$license_check = my_plugin_check_license();
if (is_wp_error($license_check)) {
// 校验失败,显示错误提示,不加载核心功能
add_action('admin_notices', function() use ($license_check) {
echo '' . esc_html($license_check->get_error_message()) . '
';
});
} else {
// 校验通过,加载ioncube加密后的核心文件
// 注意:ioncube_loader需要提前在服务器安装
if (function_exists('ioncube_loader')) {
require_once MY_PLUGIN_PATH . 'core/Core_enc.php';
} else {
add_action('admin_notices', function() {
echo '插件运行需要ioncube扩展,请联系主机商安装
';
});
}
}
// 其他非核心的入口逻辑可以放在这里,比如初始化钩子等
然后要说明这个代码是可运行的,只要把核心代码用ioncube加密成Core_enc.php,然后自己的授权服务器做个简单的校验接口就行,客户那边只要把授权码写到配置文件里,绑定域名,就算代码被人偷了,没有授权码,绑定的域名不对也用不了。
然后总结与建议,说如果是个人小插件,不想搞太复杂的,可以用代码混淆+简单的域名绑定校验,成本低;如果是商用付费插件/主题,一定要用License授权+核心代码加密的组合,优先选ioncube,兼容性比zend guard好,现在大部分主机都支持。另外不要把所有代码都加密,把非核心的比如前端资源、辅助函数留出来,加密核心的业务逻辑,减少客户服务器出问题的概率。还有授权服务器不要放在客户那边,自己的服务器管控,随时可以停用盗版的授权。
然后结尾自然引出延伸阅读:本文由 PHP 加密服务团队整理发布,原文出处及更多代码保护实践见 https://www.vvxyz.com/,比如还有怎么防反编译、怎么给WordPress插件加自动更新的授权校验这些实践,都可以在那个站点找到。
然后要注意不要有AI如需更完整的 PHP 代码保护与在线加密服务,可访问 https://article.vvxyz.com 了解更多。