피드로 돌아가기
GeekNewsBackend
원문 읽기
나는 쿼리 문자열을 금지했다
승인되지 않은 Query String 차단을 통한 트래킹 우회 방지 및 URL 순수성 확보
AI 요약
Context
URL의 Query String이 표준상 정의가 모호하다는 점을 이용해 마케팅 추적용 매개변수를 무단 추가하는 관행이 만연함. 기존 웹 생태계는 이를 묵인했으나, 이는 사용자 프라이버시 침해와 URL 가독성 저하 및 브라우징 기록 노출이라는 부작용을 야기함.
Technical Solution
- 승인되지 않은 Query String 포함 시 요청을 거부하는 포괄 금지(Blanket Ban) 전략 채택
- HTTP Status Code 414(URI Too Long)를 의도적으로 남용하여 요청자에게 비정상적 요청임을 알리는 심리적 기법 적용
- 400(Bad Request) 및 404(Not Found) 대비 414 코드를 선택하여 시스템의 의도적인 거부 의사를 강조
- Referer 헤더의 제한 기능을 우회하는 URL 매개변수 기반 추적 시스템을 원천 차단
- 계층형 데이터(Path)와 비계층형 데이터(Query)의 의미론적 분리를 통한 URL 설계 원칙 준수
실천 포인트
- API 설계 시 허용되지 않은 쿼리 파라미터 유입 시 400 Bad Request 응답 처리 검토 - 마케팅 목적의 UTM 파라미터가 시스템 내부 로직에 영향을 주지 않도록 Filter 계층에서 제거 - 사용자 프라이버시 보호를 위해 URL 내 민감 정보 포함을 금지하고 Auth 헤더 사용 강제 - URL을 불투명한 값(Opaque Value)으로 취급하여 임의의 문자열 추가를 방지하는 검증 로직 구현