本文介绍一种面向初学者的商业保护方案:将 php 核心检查逻辑部署在自有服务器,买家仅调用受 api 密钥鉴权的远程接口,从而避免源码泄露,兼顾可售性与安全性。
在销售前端型检查器(Checker)脚本时,HTML/CSS/JavaScript 无法真正加密——这是浏览器本质决定的。但关键逻辑(如账号验证、规则校验、数据库查询等)必须保留在服务端。最有效且易于实现的保护方式,不是“隐藏 PHP 文件”,而是根本不交付它:将 PHP API 作为托管服务运行在你自己的服务器上,并通过 API 密钥(API Key)控制访问权限。

// api/check.php(部署在你的服务器,如 https://api.yourdomain.com/check.php)
'Missing API Key']);
exit;
}
// 2. 简单密钥白名单(生产环境请改用数据库+哈希存储)
$validKeys = [
'ck_abc123xyz' => ['status' => 'active', 'domain' => 'buyer-site.com'],
'ck_def456uvw' => ['status' => 'active', 'domain' => 'another-buyer.net']
];
if (!isset($validKeys[$apiKey]) || $validKeys[$apiKey]['status'] !== 'active') {
http_response_code(403);
echo json_encode(['error' => 'Invalid or disabled API Key']);
exit;
}
// 3. 可选:校验请求来源(防止 Key 被盗用到其他域名)
$origin = $_SERVER['HTTP_ORIGIN'] ?? $_SERVER['HTTP_REFERER'] ?? '';
$allowedDomain = parse_url($validKeys[$apiKey]['domain'], PHP_URL_HOST) ?? '';
if ($allowedDomain && !str_ends_with($origin, $allowedDomain)) {
http_response_code(403);
echo json_encode(['error' => 'Origin mismatch']);
exit;
}
// 4. ✅ 此处执行你的核心检查逻辑(例如:处理 $_POST['credentials'])
$data = $_POST['credentials'] ?? '';
$result = performActualCheck($data); // 你的私有函数
echo json_encode(['success' => true, 'data' => $result]);
?>async function runCheck(credentials) {
try {
const response = await fetch('https://api.yourdomain.com/check.php', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'X-API-Key': 'ck_abc123xyz' // 买家专属密钥,硬编码或由你动态注入
},
body: new URLSearchParams({ credentials: JSON.stringify(credentials) })
});
const result = await response.json();
if (result.success) {
showResult(result.data);
} else {
alert('检查失败:' + result.error);
}
} catch (e) {
alert('网络错误,请稍后重试');
}
}这种方式让你完全掌控核心资产,同时为买家提供即开即用的体验。即使 HTML/JS 被复制,没有有效的 API Key 和你的服务支撑,检查器将彻底失效——这才是真正可持续的商业化保护路径。