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