리눅스맨

DDoS 방어

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

※ 위 배너를 클릭하면 1달러에 (900원~1800원) 살 수 있는 가성비 레어템 많습니다.

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

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

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

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

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 수준에서도 구현할 수 있으며 보다 효과적입니다.


게시됨

카테고리

,

작성자

태그: