
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