2011-10-22 2 views
2

오늘 오후에 매우 흥미로운 것을 발견했습니다. 브라우저 캐시와 쿠키를 삭제하면 트위터가 즉시 사인합니다.Twitter.com은 캐시를 삭제 한 후 어떻게 사용자를 로그 아웃합니까?

Javascript를 통해 1 초마다 인증 쿠키를 폴링하고 쿠키가 누락 된 경우 사용자를 로그 아웃한다고 가정합니다. 이것이 어떻게 수행되는지에 대한 다른 추측은 무엇입니까?

이 동작과의 첫 만남이기 때문에 구현 방법, 구현 방법 및 모든 보안 문제를 궁금해합니다.

답변

3

사이트에 로그인하는 유일한 방법은 브라우저가 후속 요청에서 보내는 쿠키를 사용하는 것입니다. 쿠키가 더 이상 존재하지 않으면 정의에 따라 더 이상 자신의 사이트에 로그인하지 않습니다.

"정확히 그것을 달성하는 가장 좋은 방법"에 대해 묻는 질문이 정확하지 않습니다. 정확하게 달성하기위한 최선의 방법은 무엇입니까?

쿠키를 통해 로그인 한 브라우저를 유지하는 것이 가장 좋은 방법인지 묻는다면 세션 또는 사용자 ID를 쿠키에 저장하는 것이 중요합니다. 세션 ID는 각 "세션"마다 다른 값이므로 훨씬 더 선호됩니다.

보안을 위해 쿠키를 일반적으로 사용하는 방법은 다음과 같습니다. 거의 모든 곳에서 사용할 수 있습니다. 쿠키가 세션 ID를 저장하는 데 사용되지 않는 유일한 경우는 세션 문자열이 쿼리 문자열에 나타나는 경우입니다.

이제 보안 문제에 대해 알아보십시오. 일반적으로 쿠키의 수명은 매우 제한되어 있으므로 브라우저 세션을 종료하면 브라우저를 닫으면 쿠키가 만료됩니다. 사이트가 ssl을 사용하도록 설정된 경우 쿠키의 내용이 전선을 통해 전달 될 때 암호화됩니다. 그렇지 않다면, 중간 또는 패킷 포착 공격에서 사람에 대한 방어력은 없습니다. (firesheep를보세요).

+0

내 질문에 다음 인증 쿠키를 확인하는 가장 좋은 방법이 될 것 같아? 거기에 권장 연습, 그것을 모니터링하는 간격 등 ... 이것은 내가 알 수있는 한 꽤 드문 행동입니다. 대부분의 사이트는 클라이언트 측에서 쿠키를 적극적으로 모니터링하지 않으며 새 요청의 인증 여부 만 고려합니다. –

+0

@Derek Hunziker : 쿠키를 모니터링하지 않습니다. Twitter는 아약스를 통해 요청을 서버로 보냅니다. 각 요청은 정의에 따라 쿠키를 전달합니다. 쿠키가 존재하지 않으면 다시 로그인해야합니다. 여기에 마법 같은 건 없어. – NotMe

+0

@ Jeff Ferland : 당신이 옳았는지, 내가 생각하고 있는지 확실하지 않습니다. 업데이트 된 답변. – NotMe

3

트위터가 열려있는 동안 일부 자바 스크립트 코드는 새 트윗이 있는지 주기적으로 서버를 폴링합니다. 무슨 일이 있었는지 폴링 시간에 매우 가까운 캐시를 지워 버렸기 때문에 캐시 지우기가 사용자를 로그 아웃 한 것처럼 보였습니다. 실제로는 설문 조사에 불과했습니다. 트위터가 더 많은 트윗을 확인하기 위해 갔을 때 쿠키를 삭제 했으므로 그 요청에는 로그인 쿠키가 없었고 서버가 사용자를 로그 아웃했습니다.

방금 ​​테스트 한 결과 쿠키를 삭제하면 트위터가 더 많은 트윗을 얻으려고 시도 할 때까지 아무런 변화가 없습니다.

관련 문제