자주 묻는 질문

버그를 발견한 경우, 이슈 보고에 게시해주세요.

자주 묻는 질문

특정 페이지에서 세션 수를 제한할 수 있나요?

네, 특정 페이지에서 세션 수를 제한할 수 있습니다. 그러나 해당 세션 수 제한은 전역적인 범위이며, 동일한 데이터 풀에서 사용할 수 없도록 방화벽 패널의 "온라인 세션 제한" 기능을 먼저 비활성화해야 합니다.

"온라인 세션 제한"을 비활성화한 후, Shieldon의 공개 API를 활용할 수 있습니다. 다음과 같은 코드를 참고해보세요:

if (strpos($_SERVER['REQUEST_URI'], 'faq/online-session-limit.html') !== false) {
    $firewall->getKernel()->limitSession(5, 300);
}

이 페이지에서는 최대 5명의 사용자가 페이지를 300초 동안 볼 수 있도록 제한합니다.

사용자가 해당 페이지에 접속하고 사용자 수가 제한에 도달한 경우, 다음과 유사한 스크린샷이 표시됩니다:

특정 URL의 모든 IP 주소를 차단하는 방법은 무엇인가요?

방화벽 패널에는 특정 URL과 관련된 모든 IP 주소를 차단하는 "모두 차단" 기능은 포함되어 있지 않습니다. 이는 URL /와 관련된 모든 IP 주소를 차단하는 것을 방지하기 위한 조치입니다. 이렇게 하면 방화벽 패널에 대한 액세스를 포함한 모든 URL이 차단됩니다. 대신, 필요에 따라 IP 매니저를 사용하고 특정 IP 범위를 설정하는 것을 권장합니다.

특정 URL의 모든 IP 주소를 차단하려면 다음과 같은 코드를 사용할 수 있습니다:

// $firewall->run() 이전에 이 코드를 배치하세요.
if (strpos($_SERVER['REQUEST_URI'], 'example/block-all.html') !== false) {
    $firewall->getKernel()->getComponent('Ip')->denyAll();
}

이것은 예시 페이지로, 모든 IP 주소의 액세스를 차단합니다.

사용자가 차단되면 다음과 유사한 스크린샷이 표시됩니다.

주의: 이 예시 링크를 클릭하면 이 웹사이트에 대한 액세스가 차단됩니다. 차단이 해제되기까지 60분 동안 기다려야 합니다.

방화벽 패널의 기본 로그인과 비밀번호는 무엇인가요?

기본 사용자 이름은 shieldon_user이고, 비밀번호는 shieldon_pass입니다. 방화벽 패널에 로그인한 후에는 우선 사용자 이름과 비밀번호를 변경하는 것이 좋습니다.

Shieldon 방화벽은 실제로 DDoS 공격을 완화할 수 있나요?

소규모 HTTP 형식의 DDoS 공격에 대해서는 라고 할 수 있지만, 실제 시나리오는 대역폭, 하드웨어 품질, 시스템 조정, 코드 품질 등 여러 요인에 따라 다를 수 있습니다.

간단한 예를 생각해봅시다. 웹사이트의 평균 페이지 크기가 3MB이고, 서버의 대역폭이 100Mbps라고 가정해봅시다. 이 경우, 서버는 약 12.5MB/s의 데이터 전송 속도를 처리할 수 있습니다. 누군가 악의적으로 웹사이트를 공격하면 서버를 압도하려면 얼마나 많은 공격 소스가 필요한지 생각해보십시오. 이는 MySQL 연결에 대한 잠재적인 부하를 고려하지 않은 것입니다.

Shieldon 방화벽은 이러한 악의적인 연결을 중단시켜 50KB 미만의 CAPTCHA 페이지를 반환합니다. 이렇게 하면 PHP 스크립트의 추가 실행이 중단되고 추가적인 MySQL 연결이 방지됩니다. 이를 통해 Shieldon 방화벽은 웹사이트가 공격받을 때 메모리와 CPU 사용량을 절약할 수 있습니다. 그러나 이는 HTTP 형식의 DDoS 공격을 완전히 막는 것이 아닌 완화하는 전략에 불과합니다.