archive.is 차단하기
웹 아카이브라는 것이 있다. Wayback Machine이라는 것도 있지만 오늘 차단할 것은 archive.is(aka archive.today)다.
이 사이트는 웨이백 머신과 다르게 robots 규약을 존중하지도 않고 무작정 어떻게든 페이지를 보존하며, 삭제 요청을 보내면 “경찰한테 요청 하든가~”라는 식으로 조롱하기 바쁜 곳이다. 그렇기 때문에 이 사이트에서의 아카이빙은 차단하는 게 좋다는 결정을 내렸다.
User-Agent
일단 UA로 막을 수 있다면 그게 가장 쉬운 길이겠지만 아마 그렇지 않을 것으로 강하게 의심이 됐다. 어떻게든 아카이빙을 하려는 놈이 UA를 속이지 않을 리가 없을테니까.
일단 https://my-domain.tld/xxx-archive-is 같은 주소를 통해 아카이브 요청을 넣어보자. 그렇게 해서 수집한 UA는 이렇게 나왔다.
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36
역시 쉽지 않았다. 아마 윈도우즈용 사파리 브라우저나 그쯤 될 것 같다. 저것과 100% 일치하는 실제 브라우저가 존재하니 일단 UA를 통한 차단은 할 수 없다고 판단하고 IP로 넘어갔다.
IP
archive.is의 IP 주소를 DNS로 조회해 보면 47.242.9.170가 나온다. 하지만 당연하다면 당연하게도 아카이빙을 뜰 때는 저 주소에서 요청이 들어오지 않는다. 당연하게도 CloudFlare처럼 자신이 사용하는 IP 대역을 공개하지도 않는다.
하지만 IP 목록을 얻어 왔다. whois 조회를 통해 archive.is를 검색하면 네임서버가 3개 나오는데 기묘하게도 이 3개의 주소가 아카이브를 하는 머신의 IP였다.
whois archive.is
dig carl.archive.is
dig elsa.archive.is
dig dave.archive.is
추가
archive.is는 집요했다. 저 아이피를 모두 차단했더니 다른 IP들로 접속을 시도한다.
2001:067c:2660:425:c::01d2
라는 IP로도 접속을 시도했고 이것마저 막히면 결국엔 TOR를 통해서 접속을 시도한다.
TOR 유저를 다짜고짜 막는 것은 부당하다고 생각하기 때문에 결국은 위에서 나온 UA를 클라우드플레어의 방화벽에 올려서 CAPTCHA를 풀도록 만들었다. 정상적인 사람이라면 캡차를 풀고 사이트를 이용할 수 있을 것이고 윈도우즈에서 사파리를 사용하는 유저는 극도로 적은 편이다.
archive.is는 정말로 집요했다. 클플에서 CAPTCHA가 뜨면 일단 403 코드를 반환하는데 이걸 접속 실패로 보고 계속 다른 우회로를 통해 접속을 시도하는 무한루프를 돌고 있었다. 그 와중에 UA는 한 번도 안 바꾸기 때문에 UA로 필터를 걸면 일단은 완벽하게 차단이 될 것으로 추정 된다. 하지만 이건 언제 바뀔지 모르니 주기적으로 검사를 한번씩 돌려주는 게 좋겠다.
추신. 403이 뜨면 접속 실패로 간주하고 다른 IP를 통해 재시도를 한다는 것을 이용해서 오히려 200OK를 주는 동시에 내용은 빈 페이지로 주는 방법도 굉장히 유용하게 쓰일 수 있을 것 같다. 그렇게 해도 아카이버는 성공으로 간주하고 더이상 재시도를 하지 않을테니까.
결론
일단 아래의 IP를 차단하고 UA는 실제 윈도우즈 사파리가 사용하는 UA니 다짜고짜 차단하는 것보다는 CAPTCHA 등을 거는 것을 추천
142.93.143.38
198.245.53.182
151.106.9.30
5.188.0.77
45.135.229.10
2001:67c:2660:425:c::1d2
2001:67c:2660:425:21b:21ff:fead:ae14
2001:67c:2660:425::/64
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36