최근 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 코드를 암호화하는 데는 어느 정도 어려움이 있지만, 세상에 절대 해독할 수 없는 코드는 없습니다.