• DDoS 방어 스니핏 PHP 소스코드 1분 10회공격 IP차단

    DDoS 방어 스니핏 PHP 소스코드 1분 10회공격 IP차단

    이 글은 이 문장을 제외한 모든 문장은 챗GPT로 DDoS 방어 글을 작성되었습니다.

    이러한 기능을 WordPress에 구현하려면 WordPress 플러그인을 만들거나 WordPress 테마 기능.php 파일에 코드를 추가할 수 있습니다.

    아래는 WordPress의 functions.php 파일에 추가할 수 있는 간단한 코드의 예입니다. 이 코드는 사용자의 IP 주소와 액세스 시간을 세션에 저장하고, 동일한 페이지나 파일에 1분에 10번 이상 액세스하는 사용자의 IP 주소를 차단합니다.

    DDoS 방어

    function check_and_block_repeated_requests() {
        session_start();
        
        $user_ip = $_SERVER['REMOTE_ADDR'];
        $current_page = $_SERVER['REQUEST_URI'];
    
        $key = $user_ip . '_' . $current_page;
    
        if (!isset($_SESSION[$key])) {
            $_SESSION[$key] = array('timestamp' => time(), 'count' => 0);
        }
    
        // Check if user has accessed the page within the last 60 seconds
        if (time() - $_SESSION[$key]['timestamp'] < 60) {
            $_SESSION[$key]['count'] += 1;
        } else {
            $_SESSION[$key] = array('timestamp' => time(), 'count' => 0);
        }
    
        // If user accessed the page more than 10 times in the last 60 seconds, block them
        if ($_SESSION[$key]['count'] > 10) {
            die('You have been temporarily blocked due to excessive requests.');
        }
    }
    
    add_action('init', 'check_and_block_repeated_requests');
    
    
    

    현재 WordPress에서 활성화된 function.php 파일에 이 코드를 추가할 수 있습니다.

    참고:

    이 코드는 세션을 사용하여 사용자 액세스 수를 추적합니다. 일부 WordPress 환경에서는 세션 설정이 필요할 수 있습니다.
    위 코드는 예제일 뿐이며 프로덕션 배포를 위해 테스트 및 검증이 필요합니다.
    이러한 기능은 웹 서버, CDN 또는 WAF 수준에서도 구현할 수 있으며 보다 효과적입니다.