
300
HTTP
3
부 식별, 인가, 보안
From, User-Agent, Referer 헤더들은 확실히 식별하기에는 부족한 정보를 가진
다. 이제 특정 사용자를 식별하는 더 정확한 방법에 대해 알아보자.
11.3
클라이언트
IP
주소
초기 웹 선구자들은 사용자 식별에 클라이언트의 IP 주소를 사용하려 했다. 이 방
식은 사용자가 확실한 IP 주소를 가지고 있고, 그 주소가 좀처럼(혹은 절대) 바뀌
지 않고, 웹 서버가 요청마다 클라이언트의 IP를 알 수 있다면 문제없이 동작한다.
클라이언트의 IP 주소는 보통 HTTP 헤더에 없지만
2
웹 서버는 HTTP 요청을 보내
는 반대쪽 TCP 커넥션의 IP 주소를 알아낼 수 있다. 예를 들어 유닉스 시스템에서
getpeername 함수를 호출하면 요청을 보낸 클라이언트의 IP 주소를 받을 수 있다.
status = getpeername(tcp_connection_socket,...);
안타깝게도 클라이언트 IP 주소로 사용자를 식별하는 방식은 다음과 같은 약점을
가진다.
· 클라이언트 IP 주소는 사용자가 아닌, 사용하는 컴퓨터를 가리킨다. 만약 여러 사
용자가 같은 컴퓨터를 사용한다면 그들을 식별할 수 없을 것이다.
· 많은 인터넷 서비스 제공자(ISP)는 사용자가 로그인하면 동적으로 IP 주소를 할
당한다. 로그인한 ...