Warning.or.kr도 우회할 수 있는 Redirector


참 많은 일을 할 수 있는 Redirector

오늘 소개하는 확장은 Redirector이다. 사용자가 요청한 주소를 정한 규칙에 따라 실시간으로 바꿔치기할 수 있는 확장이다. 이런 확장이 왜 필요할까 싶지만 의외로 쓰임새가 많다. 이 글에서는 Redirector을 이용해 여러 문제에 대한 해결법을 소개하고 있다. Warning.or.kr에서 차단한 4shared.com과 같은 사이트에 우회 접속할 수 있는 방법, 크로미움 계열의 브라우저에서 빠른 검색의 기본 검색엔진으로 google.com을 사용할 수 있는 방법, 구글 뉴스를 날짜순으로 정렬할 수 있는 방법 등을 소개하고 있다.

목차

내가 Railway Siding

리다이렉터는 어디에나 있다. 진행 방향을 살짝 바꿔주는 Railway Siding도 이런 리다이렉터의 하나다.

그럼 빠른 검색에서 Create new redirect

이 창에서 설정할 수 있는 옵션은 다음과 같다. 결론부터 이야기하면 핵심은 찾을 패턴(Include pattern)과 전환 패턴(Redirect to)이다.

항목 설명 설명 Description: 규칙을 구분할 수 있는 이름을 입력한다. 예: Bypass 4shred URL 예: Example URL: 변환할 주소를 그대로 입력한다. 예: http://www.4shared.com/rar/OVLcs4ERce/DM_OST.html 찾을 패턴 Include pattern: URL에서 찾을 패턴을 만능 문자(*) 또는 정규식을 사용해서 입력한다. 예: http://(.\*)\.4shared\.com/(.\*) 전환 패턴 Redirect to: 전환할 패턴을 입력한다. 정규식을 사용한다면 ()는 순서대로 $1~$9로 참조할 수 있다. 예: https://$1.4shared.com/$2 패턴 유형 Pattern type: 패턴 유형을 선택한다. 만능 문자, 정규식 중 하나를 택한다. 적용 결과 Example result: 패턴을 적용한 주소가 자동으로 표시된다. 예: https://www.4shared.com/rar/OVLcs4ERce/DM_OST.html 제외 패턴 Exclude pattern: 제외할 패턴을 입력한다. 처리 방법 Process matches: 주소를 인코딩, 디코딩할 필요가 있을 때 사용한다. 예: URL 인코딩, URL 디코딩, 베이스64 디코딩, 기본값은 없음(No processing) 적용 대상 Apply to: 적용할 대상를 선택한다. 보통 Main Window(Address bar)를 택하면 된다. Main Window(Address bar): 주소 표시줄에 입력한 URL 또는 브라우저의 요청에 적용된다. IFrames: IFrames 주소에 적용된다. Stylesheets: 스타일 주소에 적용된다. Scripts: 스크립트 주소에 적용된다. Images: 이미지 주소에 적용된다. Objects (예. 플래시 비디오, 자바 애플릿): 개체 주소에 적용된다. XMLHttpRequests(Ajax): AJax 요청 주소에 적용된다.

규칙을 설정하는 법

http://www.4shared.com/rar/OVLcs4ERce/DM_OST.html → https://www.4shared.com/rar/OVLcs4ERce/DM_OST.html 

일단 예로서 4shared.comhttp로 요청했을 때 자동으로 https로 바꾸는 방법을 생각해 보자. httphttps로 바꾸면 되기 때문에 '찾을 패턴'(Include pattern)을 http(.*)로 하고 '전환 패턴'(Redirect to)을 https$1로 하면 될 것 같다. 그러나 이렇게 하면 모든 http 요청을 https로 바꾸게 된다. 따라서 주소를 프로토콜, 호스트 이름, 요청의 세 부분으로 나누어 고정된 부분변하는 부분을 나누어 생각하는 것이 좋다.

  1. *://*.4shared.com/*
    변하는 부분은 프로토콜, 호스트이름, 주소 뒤의 요청이기 때문에 일단 만능 문자로 바꾸면 이렇게 된다. 호스트 이름 중 4shared.com은 바뀌지 않기 때문에 *.4shared.com으로 했다.
  2. http://*.4shared.com/*
    어떤 프로토콜은 어떻게 바꿀 것인지 알고 있기 때문에 프로토콜도 http로 고정한다. 값이 두 개이기 때문에 변수로 다루는 것 보다는 직접 입력하는 것이 더 낫다.
  3. http://.*\.4shared\.com/.*
    만능 문자와 정확히 같은 역할을 하는 정규식으로 바꿨다. 정규식은 변수를 사용할 수 있기 때문이다.
  4. http://(.*)\.4shared\.com/(.*) - 찾을 패턴(Include pattern)
    전환 패턴(Redirect to)에서 사용하기 위해 패턴을 괄호로 묶었다. 졍규식에서는 이렇게 괄호로 묶으면 묶은 순서대로 $1~$9의 변수를 이용해서 참조할 수 있다. 예를 들어 $1에는 www가 저장되며 $2에는 rar/OVLcs4ERce/DM_OST.html가 저장된다.
  5. https://$1\.4shared\.com/$2 - 전환 패턴(Redirect to)
    httphttps로 바꾸고 4단계에서 저장된 wwwrar/OVLcs4ERce/DM_OST.html를 가져오기 위해 변수 $1$2를 사용했다.

찾을 패턴과 전환 패턴이 결정되면 '패턴 유형'(Pattern type)은 '정규식'(Regular Expression), '적용 대상'(Apply to)을 Main Window(Address bar)으로 하고 저장한다. 그리고 http://www.4shared.com으로 접속하면 자동으로 http 프로토콜이 https로 변환된다. 참고로 이 방법은 Bypass 4shred

찾을 패턴: http://(.*).4shared.com/(.*) 전환 패턴: https://$1.4shared.com/$2 예와 결과: http://www.4shared.com/rar/OVLcs4ERce/DM_OST.html → https://www.4shared.com/rar/OVLcs4ERce/DM_OST.html 적용 대상: Main window (address bar) 

Google.com

위에서 설명한 것처럼 Google.com

검색 패턴: https://www.google.co.kr/search(.*) 전환 패턴: https://www.google.com/search$1&fg=1 예와 결과: https://www.google.co.kr/search?q=구글 → https://www.google.com/search?q=구글 적용 대상: Main window (address bar) 

Old Apps Bypass

Old Apps Bypass

검색 패턴: http://www.oldapps.com/(.*)\?old_(.*) 전환 패턴: http://www.oldapps.com/$1?old_$2?download 예와 결과: http://www.oldapps.com/utorrent.php?old_utorrent=16156 → http://www.oldapps.com/utorrent.php?old_utorrent=16156?download 적용 대상: Main window (address bar) 

Google News sorting by Date

사실 많은 사람들이 뉴스를 포털을 통해 소비한다. 과거 언론 시장은 생산자(언론사)와 소비자(독자)가 직접 연결된 구조였다. 그러나 인터넷과 포털이 발전함으로서 생산자→유통자→소비자 Google News sorting by Date

검색 패턴: https://news.google.com/news/story?(.*?)$ 전환 패턴: https://news.google.com/news/story$1&scoring=n 예와 결과: https://news.google.com/news/story?q=컷오프&lr=Korean&hl=ko → https://news.google.com/news/story?q=컷오프&lr=Korean&hl=ko&scoring=n 적용 대상: Main window (address bar) 

날짜순 정렬이 안되는 구글 뉴스

IT World

검색 패턴: http:\/\/(www\.itworld\.co\.kr|www\.ciokorea\.com)\/(slideshow|news)\/(.*) 전환 패턴: http://$1/print/$3 예와 결과: http://www.itworld.co.kr/slideshow/1995 → http://www.itworld.co.kr/print/1995 적용 대상: Main window (address bar) 

Google to Daum

외국 사이트를 사용하다 보면 Google to Daum

검색 패턴: http:\/\/maps\.google\.com\/maps\?q=(.*) 전환 패턴: http://map.daum.net/link/search/$1 예와 결과: http://maps.google.com/maps?q=37.23605223,127.42891566 → http://map.daum.net/link/search/37.23605223,127.42891566 적용 대상: Main window (address bar) 

남은 이야기, 트위터 바이러스 링크이즈(Linkis)

링크이즈: 트위터 바이러스

더 큰 문제는 기사를 읽기위해 트위터에 연결하면 트위터에 올리는 모든 링크를 링크이즈로 바꾼다. 이 때문에 한때 트위터 링크가 링크이즈로 도배가된 적도 있었다. linkis.com/www.mediatoday.co.kr/izBO6를 보면 분명 미디어 오늘 기사다. 그런데 링크이즈를 통해 미디어 오늘에 연결하는 것이 아니라 미디어 오늘 기사를 링크이즈에서 보여주는 방식을 택하고 있다. 따라서 링크이즈에 접속해도 기사의 실제 주소를 알 수 없다[14]. 링크이즈의 이런 작태 때문에 제목으로 기사를 찾아 읽었었다. 또 가져온 기사를 마치 링크이즈의 글처럼 보여주는 방식 때문에 구글을 검색하면 많은 글이 링크이즈의 글로 검색되던 때도 있었다[4].

결국 참지 못하고 링크이즈를 우회하는 규칙을 REDIRECTOR에 추가했다. 다행히 링크이즈의 문제를 인식하는 사람들이 많아져 요즘에는 링크이즈는 찾기 힘들다. 링크이즈의 이런 동작 방식은 바이러스가 순식간에 퍼지다 갑자기 사라지는 것과 꽤 비슷하다. 그러나 혹시 모르기 때문에 '트위터/설정 및 개인정보/어플리케이션'에 링크이즈가 있는지 확인하기 바란다. 만약 있다면 꼭 접근 차단하기 바란다. 난 링크이즈를 트위터 바이러스라고 생각한다.

오늘 공개한 규칙에 링크이즈는 없다. 단순히 주소를 바꾸는 것으로 원 기사의 주소를 알 수 없다. 따라서 블로그에 링크이즈에서 원래의 주소를 가져오는 프로그램을 짰다. 리다이렉터는 링크이즈 주소를 블로그 서버 프로그램에 넘기는 역할을 한다. 아직도 링크이즈에 짜증난 사람이 많아 공개 요청이 많다면 공개할 수도 있다.

마지막으로 오늘 소개한 규칙 외에 내가 사용하고 있는 규칙은 10여개 정도 더 있다. 다만 이 규칙들은 링크이즈처럼 공개할 수 없는 사정이 있어 공개하지 않은 것이다. 그러나 정규식만 알면 리다이렉터는 손 쉽게 사용할 수 있다. 아울러 상황에 따라 스스로 추가하면 되기 때문에 이 정도의 예제면 배우는데 충분할 것이라고 생각한다.

관련 글타래

  1. 사육이라는 말에 기분 나쁠 수 있다. 그러나 무턱대고 기분 나뻐하기 보다는 사육된 것인지 아닌지 먼저 판단해 보기 바란다. 판단하는 방법은 간단하다. 없이 인터넷을 쓰는데 지장이 없다면 '그냥' 사용자다. 그러나 없이 인터넷을 쓸 수 없다면 사육된 것이 맞다. 
  2. 이런 점유율을 가지고 조작도 열심히 하는 업체가 다. 는 아니라고 하지만 의 답변에 조작질에 대한 답을 찾을 수 있다. "실시간 검색어를 실수로 지울 수 있다"는 답변은 "실시간 검색어를 조작할 수 있다"는 자백이기도 하다. 
  3. 모든 사용자가 아니라 이들 중 '철저히 사육된 사용자'를 말한다. 
  4. 기억에만 의존한 것이라 부정확할 수 있다. 또 당시의 상황과 지금의 상황이 다르기 때문에 이 부분을 고려하고 읽기 바란다. 
  5. 네이버로 퇴화하는 구글?이라는 글을 쓴 뒤 한국 구글을 버렸다. 즉, 이 글을 쓰고 난 뒤부터 한번도 한국 구글을 사용해 본적이 없다. 크롬, 오페라 빠른 검색에서 자동으로 한국 구글의 검색 결과를 가져오기 전까지. 
  6. 오페라의 기반은 크로미움이다. 크로미움은 구글에서 지원하는 공개 소스 프로젝트로 오페라가 의도하던 의도하지 않던 구글의 입김을 무시할 수 없었을 것이라고 본다. 
  7. 우리나라에서 구글의 점유율을 높이려는 꼼수로 보인다. 만약 그렇다면 세계의 검색 시장을 지배하고 있는 공룡 구글의 IQ가 공룡 수준으로 퇴화한 것이라는 생각이 든다. 
  8. 처음에는 default_partner_content.json 파일을 바꿔서 사용했었지만 얼마 뒤 막혔다. 그래서 접속 지역을 us로 설정해서 사용했었지만 이 마저도 막힌 것이다. 
  9. 비발디는 default_partner_content.json 파일이 존재하지 않는다. 그러나 오페라, 크롬과 마찬가지로 한국 구글에서 가져오는 것으로 봐서 하드 코딩한 것으로 생각한다. 
  10. 사용자가 주소 표시줄에 입력한 주소 뿐만아니라 브라우저가 내부적으로 보내는 요청을 포함한다. 
  11. 과거에도 가판을 통한 유통이 존재했지만 포털과 같은 주도 사업자는 아니었다. 또 배달을 통한 유통도 존재했지만 대부분 언론사에 종속된 관계였다. 즉, 과거에도 유통망은 있었지만 종속관계와 규모가 달랐다. 
  12. 악풀러가 많아진 이유 중 하나도 바로 이런 유통구조 때문이라고 생각한다. 
  13. 벌써 수년째 같은 현생이 발생하고 있지만 아직까지 수정되지 않고 있다. 이 현상은 브라우저를 바꿔도 한국 구글에서 접근해도 마찬가지다. 
  14. 요즘은 링크이즈로 접속하면 기사를 링크한 트윗이 아래에 표시되며 이 트윗의 X단추를 클릭하면 미디어 오늘의 링크로 바뀐다. 오늘 글을 쓰며 확인한 것이다. 


Powered by Textcube