Monthly Archives: November 2006

Firefox 2.0 & third-party cookie

Firefox 1.5 까지는 설정에서 third-party cookie를 사용하지 않도록 할수 있었는데, 2.0에서는 이 기능이 도구-설정에서 빠졌다고 하네요. about:config에서 설정이 가능하지만 바꿔야하는 설정값의 이름이 좀 상관없어 보이고, 설정하는것도 bool 값이 아닌 int 값입니다.
주소창에서 about:config를 치고, 필터에 cookieb까지 치면 항목이 하나 남습니다. network.cookie.cookieBehavior를 바꿔주면 됩니다. 디폴트 값이 0인데 더블클릭해서 1로 바꿔주면 third-party cookie를 허용안하도록 바뀝니다.

cookie는 웹서버와 웹브라우저간에 주고 받는 정보로 웹서버에서 임의의 정보를 웹브라우저쪽에 저장을 할수가 있습니다. 예를들면 사용자 로그인 정보, 장바구니 등이 저장됩니다. 웹서버와 웹브라우저가 연결을 유지하면 그 사용자가 누군인지 관리할수 있지만, 웹 프로토콜인 HTTP는 기본적으로 연결을 하고 있는 구조가 아닙니다. 그래서 가상의 세션을 유지하게 위해서 만들어진것이 쿠키라고 생각하면 됩니다. 쿠키는 웹서버가 웹브라우저쪽으로 정보를 저장하고, 다시 조회하는 형태지만, 클라이언트 측에서 악의적으로 쿠키를 변경하면, 로그인 없이 사이트에 접속이 가능할수 있는 가능성이 있죠. 그래서 웹서버에서 웹브라우저에서 쿠키를 변조 못하도록 신경을 써주지 않으면 보안 문제가 발생할수 있습니다. 웹브라우저에서는 사이트별로 쿠키가 저장되도록 하고, 어떤 사이트에서 해당 사이트의 쿠키만 조회하고 변경할수 있도록 하여, 보안 문제가 발생하는 걸 보호합니다.

그럼 third-party cookie가 무엇인지 설명드리겠습니다. 요즘은 웹이 광고로 도배되면서 광고이미지 등은 원래 웹사이트가 아닌 다른 서버(AD서버)에서 주로 가져옵니다. 이미지를 요청할때는 원래 웹사이트의 URL이 referer라는 값으로 전송됩니다. 그래서 AD서버에서 광고를 보는 사용자가 어떤곳을 보고 있는지 모두 저장할수 있습니다. 광고가 나온곳이 검색 사이트면 검색하는 단어들을 다 볼수 있는거죠. 그런데 이렇게 보는것 까지는 보는 사람이 누구인지 모르고 IP정도만 공개되기 때문에 문제가 아주 심각하지는 않습니다. IP는 그래도 가끔씩 바뀌는 정보니 개인의 신원이 바로 드러나지는 않죠. 근데 만약 AD 서버에서 쿠키를 내 PC에 저장할수 있다고 합시다. 그러면 AD 서버를 운영하는 사람은 IP보다 더 정확하게 사용자에 대한 정보를 모을수 있습니다. 만일이라도 광고를 보고 그 쪽 사이트에 개인정보를 입력하여 가입하면, 사용자와 사용자가 자주가는 웹사이트, 검색하는 단어들이 그대로 유출되는거죠. 이런 정보는 돈으로 충분히 거래될수 있는 정보죠.

IE에서는 third-party 쿠키를 사용못하게 하는 방법이 옵션으로 쉽게 설정되지는 않습니다. 근데 익스플로러에서 더 걱정되는건 요즘 많이 설치되는 툴바들과 플러그인들입니다. 대부분 툴바들이 주소에 따라서 부가적인 정보를 보여주거나 하는데 이게 가능하기 위해서는 사용자가 보고있는 사이트에 대한 정보가 유출된다는거죠. 많이 쓰는 구글툴바의 page rank도 사용자 라이센스에 보면 어떤 정보가 어떻게 사용되는지 자세히 설명되어 있습니다.

위 정보는 Security Now Podcast의 Listener Feedback Q&A #12에서 언급된 내용입니다.

Xming, putty 를 이용한 원격 X 프로그램 실행

꽤 오래전에 다니던 회사에서 eXceed를 이용했었는데 그 당시 회사에서 사용하던 피씨의 메모리는 64M였습니다. 로터스 노츠와 싱글(ㅎㅎ)을 띄우면 더이상 띄울수 있는 프로그램이 별로 없었습니다. (요즘은 싱글이 웹기반으로 바뀐거 같더군요..) 그 당시는 피씨용 오픈소스 엑스서버가 없었습니다. 메모리 사용량이 적은 Xmanager의 평가판을 사용하다가 사용기간이 지나서 프로그램을 번갈아가면서 어렵게 사용하던 기억이 납니다. Xmanager는 우리나라 회사에서 만든 좋은 프로그램이었는데 회사에서 eXceed 있다고 다시 구매를 못했었습니다.

지금 오픈소스 엑스서버를 찾아보니 cygwin기반으로 도는 Cygwin/X와 mingw(Minimalist GNU for Windows)로 별도 라이브러리 필요없는 Xming이 있더군요. 저는 Xming을 설치했습니다. 여기에서 Xming과 Xming-fonts를 받아서 설치했습니다. 설치는 간단하더군요. 설치후 엑스서버를 다시 시작해주고, ssh를 이용한 터널링으로 쉽고 안전한 방법으로 원격 서버해  연결하여 클라이언트 프로그램을 띄웠습니다.

putty 설정에서 “접속-SSH-터널링” 에서 “X11 포워딩 사용”을 선택하고 “X 디스플레이 위치”를 “localhost:0” 으로 설정하고 세션을 저장했습니다. 원격 서버에 연결하고, 로그인 후 xterm &을 실행하면 새 xterm이 윈도우즈 화면에 뜹니다. ^^. 단, 원격 서버의 sshd_config에서 X11Forwarding yes로 설정되어 있어야합니다.

원격 서버에서 DISPLAY 환경변수를 세팅하는 방법도 있지만, 안전하지도 않고 세팅하기도 힘듭니다. DISPLAY 환경변수를 이용한 방법은 모든 정보가 암호화 없이 그냥 갑니다. 또, 요즘 엑스서버는 디폴트로 localhost를 제외한 호스트에서는 연결을 받아들이지 않기 때문에 X0.hosts 등에 원격 서버를 등록해야합니다. 또한 PC가 방화벽 뒤나 공유기(NAT) 뒤에 있다면 더욱더 상황이 복잡해집니다.

엑스 서버를 얘기하면 서버와 클라이언트의 구분이 좀 애매해집니다. 원격 유닉스 서버가 엑스 클라이언트 역할을 하고, 로컬 윈도우즈 호스트가 엑스 서버 역할을 합니다. 윈도우즈에서 엑스 서버 프로그램이 뜨고, 원격 유닉스에서는 엑스 서버에 화면을 그려주도록 요청하는 클라이언트로 동작합니다.

엑스서버를 윈도우즈에 깔지 않고 서버의 그래픽하면 보는 방법으로 VNC를 이용한 방법도 있습니다. VNC가 나온지 꽤 되었는데, 예전에 비하면 많이 빨라졌더군요. vnc를 사용하면 세션이 관리가 되서 편해서텍스트의 screen과 비슷한 형태로 사용하고 있습니다. 그런데 제 컴퓨터에서만 문제가 되는지 모르겠지만, 키 입력을 빨리할때문자가 빠지거나 문자가 반복해서 찍힌다던지 하는 버그가 있는거 같습니다. 윈도우즈간 vnc에서는 못본 문제인거 같은데 문제가 왜발생하는지 좀더 연구해봐야겠습니다.

사실 저는 거의 텍스트 위주로 작업하기 때문에 꼭 필요할 경우만 X윈도우 프로그램을 띄웁니다. 엑스윈도우에서 직접 작업할때는 열심히 윈도우 메니저를 꾸면서 사용하지만, 윈도우즈에서 동시에 사용할때는 그냥 윈도우즈 화면과 동일하게 독립적으로 띄우는게 작업 효율면에서 더 효과적인거 같네요.

사용중인 Firefox Extension 소개

Firefox 2.0에서 사용중인 Extension을 소개합니다. Firefox에서 사용하는 용어가 좀 헷갈리네요. 부가기능(Add on) 밑에 확장기능(extension)과 테마가 있습니다.

All-in-One Gestures: 오페라에서 처음(?) 구현된 기능으로, 마우스 오른쪽 버튼을 누른채로 왼쪽으로 하면 뒤로, 오른쪽으로 하면 앞으로, 위로하면 새탭, L자를 쓰면 닫기. 마우스를 멀리 움직이지 않고 마우스만으로 여러 동작을 쉽게 할수 있습니다. 한번 사용하면 없으면 무지 불편해요. 오페라에서 많이 사용해서 마우스 동작을 약간 바꿔서 사용하고 있습니다.

Tab Catalog: 열려있는 탭을 빠르게 이동할수 있는 기능을 제공합니다. 특히 썸네일기능으로 작은 화면을 미리 보고 고를수 있는 기능을 제공합니다. 오른쪽 마우스를 누른 상태에서 마우스 중간버튼을 스크롤하면 탭을 고를수 있는 기능(이것도 역시 오페라에서 지원)을 제공합니다.

IE Tab: 우리 나라에서는 아직 Internet Explorer에서만 제대로 보이는 페이지들이 많기 때문에 이걸 설치한 상태에서 상태창의 오른쪽의 firefox아이콘을 클릭해주면 이게 ie 아이콘으로 바뀌면서 페이지도 IE로 랜더링 해줍니다. 단 IE로 랜더링된 화면에서는 firefox의 많은 기능들이 동작안합니다.

ScrapBook: 페이지를 내컴퓨터에 저장하고 밑줄 긋고, 형관펜으로 선택하고, 편집할수 있는 기능을 제공합니다. 책에 공부할때 표시하기 좋아하는 사람에게는 딱입니다. 저는 책을 깨끗하게 보는 편(!)이기 때문에 어디까지 공부했는지와 잘 모르는 부분만 대충 표시해둡니다. 페이지 상세 캡쳐 기능을 사용하면 전체 사이트를 긁어올수도 있습니다.

Internote: 임의의 페이지에 포스트잇 노트를 붙일수 있습니다. 크기와 색상 조정이 가능합니다.

NoScript: Javascript 실행을 사이트별로 제한할수 있습니다.

JSView: 현재 페이지에서 사용된 javascript, css 등을 파일별로 보여줍니다.

Web Developer: 웹개발자에게 유용합니다. 자잘한 여러가지 기능을 제공하며, 도구-Web Developer에 메뉴가 쫙! 생깁니다.

StumbleUpon: IE에서 사용하던 플러그인이라 설치했습니다. stumbleupon.com에 가입을 해야 동작하고, 개인별로 사이트를 추천해주는 서비스입니다. 처음에는 아무 사이트나 소개해주고 마음에 들면 “i like it”을 선택하면 그 후로는 비슷한 페이지를 소개해줍니다. 웹서핑하다 새로운걸 만나고 싶을때 가끔씩 눌러줍니다. 이걸 통해서 좋은 정보들을 꽤 건졌습니다.

Unison을 이용한 로컬 백업

Objective Caml에 평소에 관심이 많다보니, O’Caml로 짠 유명한(?) 프로그램도 관심있게 지켜보고 있습니다. mldonkeyunison이 그래도 많이 쓰이는 프로그램인 거 같은데, mldonkey는 아직 사용은 못해봤고, Unison은 전에 설치는 해봤는데 사용은 제대로 못했었습니다. mldonkey는 외국에서 많이 사용하는 P2P 프로토콜(edonkey, fasttrack, bittorrent, gnutella, dc…)을 모두 지원하는 텍스트 기반 P2P 프로그램입니다. Unison은 두 디렉토리들을 동기화시켜주는 유틸리티입니다. 버전 관리툴하고 유사하긴 하지만 버전을 관리해주지는 않고 양쪽 디렉토리에서 변경되는 부분을 양방향으로 동기화 해줍니다. 주로 원격 컴퓨터간 동기화하기 위해 만들어진것 같지만 한 컴퓨터 내에서도 아주 잘 동작합니다. 원격 컴퓨터간 동기화 할때는 ssh, rsh와 unison 자체 프로토콜 등을 지원합니다.

회사의 모든 소스는 버전관리툴로 관리합니다. 하지만, 집에서 사용중인 많은 개인 파일들을 따로 등록해서 관리하기는 용량도 좀 크고, CD나 DVD로 백업하기도 귀찮더군요. 백업 하드디스크 따로 사서 가끔씩 중요한 폴더들을 그대로 복사하다가 시간도 오래 걸리고, 까먹고 해서 백업 툴들을 찾아봤었는데, 괜찮은것들은 대부분 쉐어웨어더군요. 음악을 취미로 하다보니 녹음한번 하면 꽤 용량이 됩니다. 그리고 새로 업데이트된 폴더들을 찾아서 복사해주는것도 일이더군요. 전체 다 복사하면 너무 오래걸리고요…

Unison은 알고있었는데 원격 동기화 프로그램으로만 생각해서 로컬 백업에 적합하다고 생각을 못했었습니다. 사용해보니, 사용방법도 간단하고 한번 세팅해두니 매일 새벽 자동으로 백업이 됩니다. ^^

unison win32 바이너리unison-2.13.16-win-text.exe를 받았습니다. 유닉스하고 버전을 맞추기 위해서 stable 버전을 받았습니다. 그래픽 버전은 GTK도 설치해야하고 백업은 사용자 인터액션 없이 자동으로 실행되는게 편하다고 생각하여 텍스트 버전으로 받았습니다. 적당한 디렉토리에 복사하고 커맨드창에서 다음을 실행하면 됩니다. 실행 파일명은 간단하게 바꿨습니다. 백업 디렉토리 f:\backup\music은 미리 만들었습니다.

unison.exe -batch -fastcheck true c:\music f:\backup\music

-batch 옵션은 실행도중에 디폴트로 자동응답하도록 하며, -fastcheck true는 양쪽 파일들을 비교할때 전체 파일에 대한 해시(핑거프린트)를 바로 하지 않고, 변경날짜 등으로 비교한후 틀린 파일들에 대해서 해시비교한다고 합니다. -fastcheck true 옵션을 주지 않고 대용량 디렉토리를 하면 무지 느립니다! 그리고, 처음 실행할때는 원래 느립니다. (모든 파일에 대해서 해시하는거 같네요.)

하지만 위에 처럼 실행하면 양쪽 디렉토리를 동기화해주기 때문에 backup 디렉토리에서 파일을 삭제하면 원본에서도 지워집니다. 그래서 한방향으로만 씽크해주는 옵션이 있습니다.
-force ROOTDIR로 어느쪽이 원본인지를 알려주면 됩니다.

unison.exe -batch -fastcheck true -force c:\music c:\music f:\backup\music

백업을 원하는 디렉토리 백업하는 batch 파일을 위에처럼 만들어주고, “시작-프로그램-보조프로그램-시스템도구-예약된작업” 에 등록시켜서 매일 새벽에 실행시켜주면 백업 걱정 끝입니다. 물론 가끔씩 DVD나 네트워크 백업을 해주는게 더 안전하겠죠.

백업을 열심히 하는 편인데… CD도 믿을만한 매체는 못되는거 같더군요. 전에 백업해 둔 CD를 못읽어서 6개월 정도의 데이타를 날린적이 있습니다. TT