2012-07-14 1 views
7

stackoverflow는 로그인 페이지에서만 SSL을 사용하며 HTTP를 통해 질문/답변을 게시 할 수 있습니다.Stackoverflow는 어떻게 사용자가 HTTP를 통해 로그인 상태를 유지합니까?

사용자가 로그인해야하며, SSL을 사용하지 않는 경우 stackoverflow가 로그인 한 사용자를 추적하는 방법에 대해 궁금합니다.

현재 나는 쿠키를 사용하여 로그인 상태를 추적하는 레일 앱을 만들고 있습니다. 난 항상 당신이 안전하게 SSL을해야한다고 생각했습니다. 하지만 나는 HTTP를 통해 로그인 한 사용자로이를 게시하고 있습니다.

tcpdump -i eth0 -A을 실행 한 다음 stackoverflow를 방문하고이 쿠키가 SSL없이 일반 텍스트로 전송되면 'usr'이라는 쿠키가 나타납니다. wifi 카페와 같이 보안되지 않은 연결을 통해 로그인 한 경우 해커/패킷 스니퍼가 내 usr 쿠키를 가져 와서 내 세션을 재생할 수 있습니까?

내 레일 앱에서 SSL을 사용하지 않으려합니다. (내 호스트가 팔과 다리를 차지하기 때문에) 스택 오버 플로우와 같은 기술을 사용하고 싶습니다. SSL없이 사용자를 계속 로그인하고 싶습니다.

데이터베이스 (또는 memcache/redis)를 추측하고 있습니다. 세션 저장소가 사용 중입니다. 하지만 확실히 어떤 종류의 쿠키가 필요합니까? 어떻게 이러한 쿠키를 SSL을 통해 전송하지 않아도됩니까? 다른 컴퓨터에서 해커에게 이러한 쿠키를 중복시키는 백그라운드에서 진행중인 작업이 있습니까?

+0

보안을 위해 HTTPS가 사용되지만 일단 쿠키가 설정되면 HTTP를 사용할 수 있다고 가정합니다. –

답변

1

다음은 사용자가 응용 프로그램에서 사용할 수있는 일이라고 생각합니다. 사용자가 로그인 페이지를 통해 로그인 할 때 두 가지 유형의 쿠키를 만듭니다. 두 번째 쿠키를 생성하여 HTTPS 페이지에만 독점적으로 보내고 다른 모든 페이지 (HTTP & HTTPS 포함)는 첫 번째 쿠키 (사용자 세션 쿠키)를 사용하여 세션 및 보안 정보가있는 모든 페이지를 유지 관리 할 수 ​​있습니다 사용자가 독점적으로 사용하는 쿠키는 두 번째 HTTPS 쿠키를 사용하게됩니다.

이렇게하면 페이지 쿠키는 세션 쿠키를 사용하여 볼 수 있지만 보려는 순간에는 두 번째 쿠키를 사용하는 사용자 정보 페이지가 표시됩니다. HTTPS 쿠키 ..

의미가있는 희망.

+0

감사합니다. 좋은 생각입니다. – stephenmurdoch