나는 쿼리 문자열을 금지했다
3 hours ago
2
- Chris Morgan은 자신의 사이트에서 무단 쿼리 문자열을 전면 차단하기로 했으며, 현재 구현은 Caddyfile에 들어 있음
- ?ref=example.com 같은 추적용 매개변수를 URL에 붙이는 것을 원하지 않으며, 필요하면 Referer 헤더를 보면 된다고 봄
- ?utm_source=example&utm_*&c.* 같은 UTM parameters는 사이트 소유자가 쓰는 용도이지 외부에서 붙일 것이 아니라고 봄
- 현재 사이트는 쿼리 문자열을 전혀 쓰지 않으며, 나중에 쓰게 되면 알려진 매개변수만 허용할 계획임
- 최종 URL은 /no-query-strings로 정했고, /%3F는 Caddy의 try_files 재작성에서 문제가 있어 선택하지 않음
무단 쿼리 문자열 차단
- Chris Morgan은 자신의 사이트에서 무단 쿼리 문자열을 전면 차단하기로 함
- ?ref=example.com 같은 추적용 매개변수를 자신의 URL에 붙이는 것을 원하지 않으며, 필요하면 Referer 헤더를 보면 된다고 봄
- ?utm_source=example&utm_*&c.* 같은 UTM parameters는 사이트 소유자가 쓰는 용도이지 외부에서 붙일 것이 아니라고 봄
- 현재 이 사이트는 쿼리 문자열을 전혀 쓰지 않으며, 나중에 쓰게 되면 알려진 매개변수만 허용할 계획임
- 과거에는 스타일시트 URL에 ?t=…, ?h=… 형태의 캐시 무효화 URL을 썼지만, 그런 요청이 깨져도 괜찮다고 판단함
- 이 차단은 현재 Caddyfile에 구현되어 있음
URL 선택 과정
-
/?를 쓰려던 계획
- 처음에는 이 페이지를 https://chrismorgan.info/?에 게시하고 싶은 유혹이 컸음
- 빈 경로와 빈 쿼리라는 형태라서 흔하지만 잘못된 가정을 많이 깨고, 일부 도구를 곤란하게 만들 수 있었음
- curl은 명령줄에서 끝의 물음표를 부당하게 제거하는 것으로 보였고, 라이브러리 사용은 테스트하지 않음
- 결국 경로라는 개념을 존중하고 사람들에게 관대해지기로 했으며, 특히 Caddy를 이미 충분히 불편한 방향으로 밀어붙이고 있다고 봄
-
/%3F를 쓰려던 계획
-
최종 선택
- 최종 URL은 /no-query-strings로 정함
- /? 또는 /%3F는 나중에 쿼리 문자열에 관한 다른 용도로 쓸 가능성이 있음
-
Homepage
-
Tech blog
- 나는 쿼리 문자열을 금지했다