회원가입 중 사용자명 사용 가능 여부 확인이 멈춤

https://it6.cc/ 웹사이트에서 가입을 시도할 때, 사용자명 사용 가능 여부 확인이 멈춰 있습니다. "사용자명 사용 가능 여부 확인 중…"이라는 메시지가 나타나고 오랜 시간 지속되어 정상적인 가입 진행이 불가능합니다.


문제의 원인을 찾았으며, Cloudflare WAF 규칙 때문이었습니다.
기존 규칙은 다음과 같습니다.

(cf.threat_score ge 5 and not cf.client.bot) or (not http.request.version in {"HTTP/1.2" "HTTP/2" "HTTP/3" "SPDY/3.1"}) or (not http.user_agent contains "Mozilla/")

Claude AI가 최적화한 규칙은 다음과 같으며, 이 규칙이 문제를 해결했습니다.

(cf.threat_score ge 10 and not cf.client.bot) or 
(http.request.version eq "HTTP/1.0") or 
(not http.user_agent contains "Mozilla/" and not cf.client.bot)
변경 사항 설명

Cloudflare 방화벽 규칙 분석 및 최적화

현재 규칙:

복사

(cf.threat_score ge 5 and not cf.client.bot) or 
(not http.request.version in {"HTTP/1.2" "HTTP/2" "HTTP/3" "SPDY/3.1"}) or 
(not http.user_agent contains "Mozilla/")

분석:

  1. cf.threat_score ge 5 and not cf.client.bot: 이 부분은 합리적이며, 봇이 아닌 높은 위협 점수를 가진 클라이언트를 차단합니다.
  2. not http.request.version in {"HTTP/1.2" "HTTP/2" "HTTP/3" "SPDY/3.1"}: 이 부분은 너무 제한적일 수 있으며, 합법적인 구형 클라이언트를 차단할 가능성이 있습니다.
  3. not http.user_agent contains "Mozilla/": 이는 브라우저가 아닌 클라이언트나 API 호출에서 발생하는 합법적인 요청을 차단할 수 있습니다.

최적화된 규칙:

복사

(cf.threat_score ge 10 and not cf.client.bot) or 
(http.request.version eq "HTTP/1.0") or 
(not http.user_agent contains "Mozilla/" and not cf.client.bot)

변경 사항 설명:

  1. 더 많은 합법적인 트래픽을 허용하기 위해 위협 점수 임계값을 10으로 상향 조정했습니다.
  2. HTTP/1.0만 차단하고, 더 새로운 버전과 SPDY를 허용합니다.
  3. 사용자 에이전트 확인을 봇이 아닌 트래픽에만 적용하도록 수정하여, API 호출과 합법적인 비브라우저 클라이언트를 허용합니다.

추가 고려 사항:

  • 사용자명 확인에 사용되는 특정 경로 또는 엔드포인트에 대한 예외를 추가하십시오:

복사

and not (http.request.uri.path contains "/check_username")
  • 대부분의 사용자가 위치한 국가나 알려진 양호한 IP 범위를 화이트리스트에 추가하십시오.
  • 일부 조건에 대해서는 차단 대신 속도 제한(rate limiting)을 구현하는 것을 고려하십시오.

구현:

현재 규칙을 최적화된 버전으로 교체하고 그 효과를 모니터링하십시오. 트래픽 패턴과 보안 요구 사항에 따라 필요시 조정하십시오.

1개의 좋아요