IE에서 여러 세션 동시에 이용하기


이번 포스팅은 팀에서 제가 테스트 도중 겪었던 작은 어려움으로부터 시작되었습니다. 저는 테스트 도중에 한 번에 여러 계정으로 로그인하여 테스트를 해야하는 경우가 많이 있었습니다. 그렇기 때문에 하나의 브라우저를 사용하는 과정에서 늘 세션이 꼬이기 일쑤였고, 결국 크롬과 IE에 각각 로그인을 한 후, 테스트를 해왔습니다. 하지만, 동시에 3개 이상의 계정에 로그인을 해야하는 상황이 발생하자 난감할 수 밖에 없었습니다. 오페라나 파이어폭스와 같은 다른 브라우저를 설치할까도 망설였지만, 너무 비효율적인데다가, 분명 방법은 있을 것이라 생각하여 웹 검색을 시작했습니다.

검색을 해보니 IE8 이전에서는 새 창을 띄우는 것만으로 세션의 분리가 가능했지만, 이후부터는 하나의 세션을 브라우저가 같이 공유해 사용한다는 것을 알 수 있었습니다. 이는 사용적인 측면에서는 유용할 수도 있지만, XSS 공격 등을 통해 사용자의 정보 또는 로그인 된 상태를 얻을 수 있다는 점에서 취약점이 많다는 평가를 받기도 하고 있습니다. 그럼 지금부터 웹을 통해 얻은 정보를 가지고 한 가지 실험을 해보겠습니다.


IE 프로세스 관찰하기


먼저 작업관리자를 켜놓은 상태로 IE를 하나 실행해보도록 하겠습니다. 실행 후 확인을 해보면 2개의 iexplore 프로세스(*32가 붙은 것과 붙지 않은 것)가 생성된 것을 볼 수 있습니다.

1

다음으로 새 창을 하나 더 열어보겠습니다.

1

프로세스가 하나 더 늘어난 것(*32가 붙은 것)을 볼 수 있습니다. 여기서 계속 새로운 창을 띄운다 해도 *32가 붙은 프로세스만 생겨날 뿐 *32가 붙지 않은 프로세스는 새로 생성되지 않습니다. 이를 통해 메인에서 관리하는 프로세스(*32 붙지 않은 프로세스)가 하나 있고 브라우저 별로 한 개씩 프로세스(*32가 붙은)가 생기며, 모든 창이 닫히기 전까지 메인 프로세스가 살아있는 것을 볼 수 있었습니다. 이를 통해 이 메인 프로세스가 세션을 관리하며, 새로 생성되는 IE에게 세션을 공유해주고 있다는 것을 알 수 있습니다. 그렇다면 처음의 문제로 돌아가서 어떻게 하면 브라우저 간 세션 공유를 막을 수 있을까요? 그 방법에 대해 알아보겠습니다.


IE에서 세션 공유를 막아보자.


방법은 총 3가지가 있습니다.

1. 파일 - 새 세션

가장 간단한 방법입니다. 메뉴모음의 파일 탭에서 새 세션을 선택해 새로운 창을 띄우는 방법입니다.

1

2. -nomerge 옵션 붙이기

IE의 속성에서 -nomerge 옵션을 주는 방법입니다. 이를 통해 새로운 창을 열면 항상 새로운 세션으로 실행되게 됩니다.

1

3. 레지스트리 수정하기

이는 직접 레지스트리를 수정하는 방법으로 다음 문자열을 메모장에 붙여넣고 확장자를 *.reg로 파일을 생성, 실행한 뒤, 재부팅을 하면 IE가 새로운 세션으로 열리는 것을 확인하실 수 있습니다.

Windows Registry Editor Version 5.00
[HKEYCURRENTUSER\Software\Microsoft\Internet Explorer\Main]
"FrameMerging"=dword:00000000
"SessionMerging"=dword:00000000


그럼 위의 방법을 통해 새로운 세션으로 열린 IE의 프로세스는 어떨지 마지막으로 확인해보도록 하겠습니다.

1

*32가 붙지않은 메인 프로세스가 하나 더 생겨난 것을 확인하실 수 있습니다. 이를 통해 브라우저 간 세션을 분리할 수 있고, 저처럼 여러 계정으로 동시에 테스트를 하는 경우에도 보다 편하게 하실수 있을 것이라 생각합니다. 물론 이런 방법을 통하더라도 브라우저에서 탭 간의 세션은 공유되니 상황에 맞게 탭과 창을 이용해보도록 하세요^^


조금 가벼운 주제의 포스팅이긴 했지만, 저처럼 매번 세션이 꼬이면서 테스트에 어려움을 겪었던 분들이 계시다면, 이 글을 보고 작게나마 도움이 되셨으면 좋겠습니다.

[top]

comments powered byDisqus