본문 바로가기
웹프로그램

PHP Session + Cookie 동작 체계

by 세이박스 2008. 10. 14.
반응형
일반적으로 로그인 체계는 Session + Cookie 로 동작을 합니다. 클라이언트 측에서 로그인 계
정의 id와 password를 입력후 submit을 하게 되면 서버측에서는 회원 가입시 받은 정보 중 id
와 password가 일치 하는지 비교하여 일치 하게 되면 로그인 후 세션을 새로 생성 하게 됩니다.
이 세션 정보는 일정 시간을 갖고 있어 그 시간이 지나게 되면 재차 로그인을 해야 하는 번거
로움이 따르게 됩니다. 일반적으로 session 허용 시간은 30분 정도 입니다. 이는 각기 종류가
다른 서버 페이지(xSP 또는 PHP등 서버해석페이지) 에 따라 그 특성상 방식과 시간이 조금씩
틀립니다. 그리고 Session 만으로 로그인 허용을 하게 된다면 매회 로그인 시 ID+PASSWORD 를
입력 하여야 하는 번거로움이 있죠. 그러한점을 cookie 를 이용하여 일부(?) 극복 할수 있게
된것입니다. 암호화된 세션정보를 쿠키에 담아 가지고 있다가 재차 접속시 클라이언트 측은 서
버측에 쿠키에 담겨 있는 암호화된 세션 정보를 내어주고 서버는 그 정보를 받아 저장된 암호
화 정보와 비교 하여 그 값이 실제 존재 값이라면 저장된 회원정보중 일부를 되돌려 줌으로서
로그인 허용을 하게 되는것입니다.

물론 세션 정보는 로그인 전에도 가지고 있습니다. 이는 비회원 로그인 정보라 해서 이또한 방
문자 한명당 각기 하나씩을 가지고 있습니다. 이를 로그인 후에는 로그인 후 세션으로 전환 생
성 하게 됩니다. 이때에도 쿠키 정보를 이용합니다. 로그인 후 정보를 쿠키 정보로 만들어서 클
라이언트에 전송 저장하게 한후 페이지 전환시 마다 비교후 로그인 여부를 판단 하는 것이지요.
현재 이 방식은 MCJdica에서는 사용하고 있지 않습니다.

물론 이 이론을 잘 이용한다면 가짜 쿠키값으로 속일수 있을지도 모르나 제로보드 에서는 암호
화값이 (회원 고유정보+특수문자+쿠키암호화 당시의 시간값)의 정보를 md5() 함수를 이용하여
만들게 됩니다. 때문에 가짜 쿠키값의 생성을 위해서는 해당 사용자의 컴퓨터로부터 빠져 나가
는 패킷정보를 일일이 스나이핑 해 보는수 밖에 없습니다.

이때 가짜 쿠키값을 생성하기 위해 쿠키정보를 스나이핑하여 가로채는것 보다는 차라리 입력하
는아이디와 패스워드를 바로 스나이핑 하는게 빠르겠죠? 그때문에 쿠키값 스나이핑은 거의 하지
않습니다. 또한 쿠키 스나이핑을 하기 위한 방법으로는 여러가지가 있긴 하지만 재일 손쉽게 많
이 쓰여 지는 방법이 자바 스크립트를 이용 html 화일을 .jpg 등의 그림화일처럼 속여 업로드
하는 것일겁니다. 대부분의 웹 서버에서는 그림화일도 웹에서 동작 하게 하기 위해 로드를 하거
든요. 내부에 스크립트 코드가 있다면 실행이 되어 지는데도 말이죠.(이는 대용량의 이미지 정
보를 데이타베이스에 저장하는것보다 화일로 저장해 놓는것이 관리의 용의성 때문이기도 합니다.)
그러한 성질을 가진 화일들은 서버 관리를 하면서 철저히 검토 제거 합니다.(아직 단 한번도 적
발된 적은 없습니다.) 제로보드를 이용하여 웹 사이트를 구축 해 보셨다면 아실테지만 제로보드
에는 쓰레기화일 제거 기능 이란것이 있습니다. 이는 데이타 베이스에 있는 화일 명과 실제 저장
되어진 화일명을 검토하여 실제 존재하나 데이타 베이스에는 없는 화일을 삭제 해주는 기능을 가
지고 있습니다. 이를 (비)정기적으로 수행 하고 있으므로 만일에 스나이핑을 위한것이거나 아니
면 또다른 기능때문에 올려진 화일이 있었더라도 삭제되어 졌을 것입니다.

이상 이론적인 내용들 이었습니다. 이는 제가 전공으로 인해 배운것들과 틈틈히 익힌것들, 3년간
의 실무 웹 프로그래밍을 해 오면서 알게된것들임을 말씀드립니다. 하지만 이또한 오류가 있음을
미리 알려드립니다.

쿠키 정보 허용으로 인해 불안하시다면 이곳 /질문과답변/ 게시판 /사이트 이용 메뉴얼 ver2/
/- 사이트 로그인 문제 - /의 /2단계. 사이트 관리를 수정한다./ 를 이용해 보시기 바랍니다.
그렇게 하면 현 사이트 내의 쿠키 정보만 허용하게 되는 것이기 때문에 조금이나마 불안감은 줄어
드실 수 있으리라 생각 됩니다.

p/s
제로보드를 사용하는 일반적인 사이트의 경우 쿠키정보를 허용으로 하지 않으면 로그인에 문제가
발생하는것으로 알고 있습니다. 또한 쿠키정보를 허용으로 하지 않으면 서버 측에서 로그인 세션
을 작성 하지 못하는 호스팅 업체도 몇몇 있는것으로 보입니다. 참고 하세요.

p/s 2
id 와 password 를 스나이핑 받더라도 무용지물이게 하기 위하여 쓰이는 방식이 https나 ssh 방식
입니다. 이는 서버와 클라이언트가 각각 키를 2개씩 가지고 서로 1개씩의 키를 주고 받으며 웹페
이지(정확히는 패킷) 정보를 암호화/복호화 하는 방식으로 진행 됩니다. 이를 지원하기 위해선
서버측에 해당 관련 보안 프로그램이 설치 되어 있고 세팅이 되어 있어야 하며 클라이언트 또한
세팅 되어야 하는 정보가 있습니다. 이는 범용성의 부족으로 인해 일부 특정 사이트에 한하여 시
행 되어 지고 있습니다. (예:은행,쇼핑몰,경매 등)
반응형

'웹프로그램' 카테고리의 다른 글

html table height=100% 안먹을 경우  (0) 2008.10.14
PHP 이달의 마지막날  (0) 2008.10.14
PHP time()  (0) 2008.10.14
PHP 썸네일  (0) 2008.10.14
php 파일로 이미지 부르기  (0) 2008.10.14
PHP str_replace  (0) 2008.10.14
PHP 게시판 페이징 처리  (0) 2008.10.14
이미지 액박 오류 표시 안되게 하기  (0) 2008.10.10