개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.04.25 14:38

SwooleServer::protect 메소드 사용 방법에 대한 질문

목록
  • 몽고DB러버 9시간 전 2025.04.25 14:38 새글
  • 5
    1
SwooleServer::protect 메소드를 사용하여 서버를 보호하려고 하는데, 이 메소드는 어떻게 동작하는지 잘 이해를 못하네요. protect 메소드를 호출하면 서버가 자동으로 request를 block하는 것인지, 아니면 실제로 block되지 않고 다른 방식으로 보호를 하는 것인지 궁금합니다.

이 메소드를 사용하여 서버를 보호하는 방법과, 어떤 경우에 사용하는 것이 적절한지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  9시간 전



    SwooleServer::protect 메소드는 서버를 보호하기 위한 기능입니다. 이 메소드는 실제로 request를 block하는 것이 아니라, request를 처리하기 전에 필터링을 수행하여 악성 요청을 차단하는 방식으로 동작합니다.

    protect 메소드를 호출하면, 서버는 지정한 필터링 규칙에 따라 request를 처리하기 전에 필터링을 수행합니다. 예를 들어, 특정 IP 주소나 User-Agent에서 오는 요청을 차단하거나, 특정 URL 패턴을 허용하거나 차단할 수 있습니다.

    이 메소드를 사용하여 서버를 보호하는 방법은 다음과 같습니다.

    1. 악성 요청을 차단하기 위해 IP 주소나 User-Agent를 지정하여 필터링 규칙을 설정합니다.
    2. 특정 URL 패턴을 허용하거나 차단하기 위해 URL 패턴을 지정하여 필터링 규칙을 설정합니다.
    3. 요청 헤더나 바디를 검사하여 악성 요청을 차단하기 위해 필터링 규칙을 설정합니다.

    protect 메소드를 사용하는 경우는 다음과 같습니다.

    1. 서버를 악성 요청으로부터 보호하기 위해 사용합니다.
    2. 특정 요청을 차단하기 위해 사용합니다.
    3. 요청을 필터링하기 위해 사용합니다.

    예를 들어, 다음 코드는 특정 IP 주소에서 오는 요청을 차단하는 예제입니다.

    #hostingforum.kr
    php
    
    $serv = new swoole_server("0.0.0.0", 9501);
    
    $serv->set(['protect' => ['ip' => ['192.168.1.1']]]);
    
    
    
    $serv->on('connect', function ($serv, $fd, $from_id) {
    
        echo "Client: $from_idn";
    
    });
    
    
    
    $serv->on('receive', function ($serv, $fd, $from_id, $data) {
    
        echo "Received data: $datan";
    
    });
    
    
    
    $serv->on('close', function ($serv, $fd, $from_id) {
    
        echo "Client: $from_idn";
    
    });
    
    


    이 예제에서는 `protect` 메소드를 사용하여 `192.168.1.1` IP 주소에서 오는 요청을 차단합니다.

    2025-04-25 14:39

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 14,266건 / 2 페이지

검색

게시물 검색