
Cloudflare로 트래픽을 확인해보니 24시간 내에 러시아에서 300건 가까이 되는 요청이 온 것을 확인했다.

세부 정보를 보니 HTTP로 계속 접근을 시도중인 것 같다.
비정상 접근 예방
1. HTTPS 요청만 허용



- Always Use HTTPS: HTTP로 들어온 요청을 자동으로 HTTPS로 리디렉트
- Automatic HTTPS Rewrites: 리소스 내 HTTP 링크도 자동 HTTPS로 변환
이렇게 하면 브라우저가 강제로 암호화 연결(TLS) 사용하게 되므로, 중간자 공격(MITM), 비정상적인 봇 요청 대부분은 차단되거나 무력화됩니다.
2. 방화벽 설정



Cloudflare WAF에서 `ip.src.country ne "KR"`→ 차단(Block) 설정 시 KR(대한민국) 외 국가에서 들어오는 모든 요청을 차단합니다.
이건 서버에 도달하기 전 Cloudflare 경계에서 차단되므로 실질적인 "접근 자체"를 차단하는 효과가 있습니다.
확인


오후 4시정도에 이 설정을 완료했고, 왼쪽이 적용 전, 오른쪽이 적용 후인데 변화가 없다.

http 로 접근하고 있다는 걸 먼저 확인했기 때문에, http 이벤트에 걸리는지 테스트 해봤는데 그래도 이벤트에 걸리지 않았다.

찾아보니 "Always Use HTTPS" 가 가장 첫번째로 적용되어 HTTPS 로 전환되기 때문에 방화벽에 걸리지 않는것으로 보인다. [참고]
요청은 늘어나는데 WAF 이벤트에 걸리지 않는 이유를 예상해보면,
- 러시아 클라이언트 → `http://mydomain.com` 요청 전송
- 이 요청은 Cloudflare 엣지 서버에 도착함
- Cloudflare는 “Always Use HTTPS” 정책에 따라
- HTTP 요청을 감지
- 클라이언트에게 `301 Moved Permanently` 응답을 보냄
- 리디렉션 주소: `https://mydomain.com`
- 러시아 클라이언트가 `https://mydomain.com` 으로 새 요청을 시도
- 이 HTTPS 요청은 이제 WAF 규칙(`ip.src.country ne "KR"`)에 의해 차단됨
- 백엔드 서버(Spring 등)는 전혀 호출되지 않음
이 과정에서 3번까지만 응답을 받고 재요청인 4번부터는 시도를 하지 않기 때문으로 보인다.
HTTPS, WAF 두 가지 설정을 하면 일단 안전한걸로 보면 될 것 같다.
WAF에 걸리는 게 있는지 종종 확인해보기로 했다.
+ 프랑스 접근 및 차단 확인


사용자 에이전트를 보면 python-httpx 로 정상적인 접근이 아님을 알 수 있다.

("Mozilla"가 User-Agent에 없고, Cloudflare가 신뢰하는 봇(cf.client.bot)도 아닌 경우)
정상 브라우저도 아니고, 좋은 봇도 아니면 모두 차단

또한 시도한 경로를 보면 /phpinfo.php, /.env 등 공격자가 자주 접근하는 경로임을 알 수 있다.
해당 경로들에 대한 것도 차단 조건에 추가했다.
'프로젝트 > 뉴스 요약 (AI)' 카테고리의 다른 글
| [뉴스 요약] 로그인 구현 (Spring Security ,JWT Token) (0) | 2025.06.30 |
|---|---|
| [뉴스 요약] SpringBoot + React 이메일 인증 기반 회원가입 (0) | 2025.06.28 |
| [뉴스 요약] 요청 제한 + 로그 기록 (Redis + Kafka) (0) | 2025.06.26 |
| [뉴스 요약] REST API 예외 응답 처리 (1) | 2025.06.25 |
| [뉴스 요약] AI 중복 요청 분기 처리 (Database 구성) (0) | 2025.06.23 |