301 vs 302: 모든 걸 망가뜨리는 리다이렉트
301과 302의 차이는 '영구 vs 임시'가 아니다. 코드 하나에 조용히 묶인 두 개의 별개 결정이고, 실수로 설정한 301은 남의 브라우저 캐시 속에서 영원히 살아남을 수 있다.
프로토콜, 보안 사건, 그리고 인터넷이 실제로 작동하는 방식. 147편.
301과 302의 차이는 '영구 vs 임시'가 아니다. 코드 하나에 조용히 묶인 두 개의 별개 결정이고, 실수로 설정한 301은 남의 브라우저 캐시 속에서 영원히 살아남을 수 있다.
직접 설정할 수도 없고, 어떤 RFC도 의무화하지 않는데, 없으면 메일이 거부되는 레코드. 예의상의 관행이 어떻게 문지기가 됐는지 짚는다.
HSTS 프리로드 목록에 도메인을 올리는 건 일방통행 문이다. 목록은 당신 서버가 아니라 브라우저 바이너리 안에 있어서, 되돌리려면 당신이 통제하지 못하는 크롬 릴리스를 몇 달이고 기다려야 한다 — 프리로드하라고 권하는 사람들이 말 안 하는 부분이다.
다들 DANE은 죽었다고 한다 — DNSSEC 뒤에 발이 묶여 아무도 안 쓴 아름다운 프로토콜. 그 판정은 미국식이다. 네덜란드에선 의무고, 마이크로소프트는 Exchange Online에서 검증하고, 웹에선 정말로 죽었다. 같은 프로토콜, 세 갈래 운명.
배포된 CSP 대부분은 아무것도 안 한다. 구글이 측정했다: 스크립트를 제한하려는 정책의 94.7%가 우회 가능. 문법은 쉽다. 어려운 이유는 따로 있다.
SMTP 암호화에는 트럭이 지나갈 만한 구멍이 있다: 경로상의 공격자가 STARTTLS를 벗겨내고 메일을 평문으로 읽을 수 있다. MTA-STS가 그걸 막는다. 그러려면 웹 페이지를 하나 띄워야 하고, 그래서 거의 아무도 안 했다.
1982년엔 모든 메일 서버가 아무한테나 relay해줬다 — 그게 설계였다. 지금은 모르는 사람한테 relay해주면 점심도 되기 전에 블록리스트에 오른다. 'relay'라는 단어는 살아남았고, 그 아래 모든 게 뒤집혔다.
모든 서버에 같은 개인키 하나, 그게 앞으로 만들 모든 서브도메인을 덮는다. 와일드카드 인증서는 작은 편의를 보이지 않는 폭발 반경과 맞바꾼다 — 그리고 지금의 표준도 그 위험을 분명히 적어 둔다.
와일드카드 DNS 레코드는 '이 이름 아래 전부 매칭'처럼 읽힌다. 아니다. 이미 존재하는 이름은 절대 건드리지 않고, 트리 깊은 곳에 레코드 하나만 추가해도 조용히 죽는다.
레코드를 추가했는데 세상은 여전히 '존재하지 않는다'고 답한다. 레코드는 멀쩡하다. DNS가 그 부재를 캐싱했을 뿐이다 — 당신이 설정한 적 없는 TTL, 아무도 건드리지 않는 SOA 필드가 지배하는 수명으로.
DNS 리바인딩이 호스트명 기반 경계를 넘는 원리, 브라우저·리졸버 방어의 범위와 내부 서비스 운영자의 점검 항목.
같은 IP가 서울에 있는 당신과 상파울루에 있는 다른 사람에게, 서로 다른 두 대의 기계에서 응답한다. 둘 다 눈치채지 못한다. 그게 anycast다 — 인터넷 전체가 믿어주기로 합의한 BGP를 향한 거짓말이자, 수백 곳에서 동시에 TCP를 조용히 작동시킨 트릭.