2014-09-28 1 views
0

현재 cakephp으로 작업 중이며 내 프로젝트에 사용자 관리를 구현 중입니다. 오늘 사용자 세션의에 문제가 발생했습니다. 사용자의 암호를 암호화 된 형식으로 기억하기 위해 쿠키를 생성했습니다. 쿠키는 사용자 세션이 만료 된 경우 세션을 복원합니다. 지금 쿠키를 쿠키 관리자 플러그인을 사용하여 크롬에서 모질라 으로 다른 브라우저로 전송 해 보았습니다. 그리고 나는 이것을 막기위한 최선의 방법이 브라우저 두 곳 모두에 로그인되어있는 것을 발견했습니다. ??다른 브라우저와 시스템에서 쿠키가 도용 당하지 않도록하는 방법

+0

"remember-me"토큰이 IP 주소의 md5 인 경우 예측 가능합니다. 토큰을 생성하기 전에 여러 비트의 데이터를 결합해야합니다. 'md5 ($ useragent. $ ip)'는 여전히 예측 가능합니다. – MrYellow

+0

인도 같은 국가에서 사용자의 ip는 그가 인터넷에 연결할 때마다 바뀝니다 ... 그러면 그는 매번 로그 아웃됩니다 .. – SaHil

+0

오, 예, IP는 종종 세션 토큰 생성에 사용됩니다. 기억을 위해,'md5 ($ email. $ hashed_password. $ useragent)'와 같은 것이 더 좋은 시작이다. – MrYellow

답변

1

당신은 이것을 막을 수 없습니다. 사용자

  • 세션 ID
  • 사용자 에이전트에서 만든 일부 해시 새로운 세션을 시작할 때 단, (a 세션 값 생성 서버 측을함으로써 문제를 공격자 것이다 줄일 수 사용할 필요가/스푸핑 같은 클라이언트)
  • 아마도 IP는 (전용 고정 장치에 대한 작동하지만 공격자가 훨씬 어렵게 만드는 것) 사용자 로그인 지금

이 필요로하는 페이지를 볼 수있는 시도 당신은 로그인 할 수 있습니다, 당신은 할 수 있습니다. 세션 조회보다 자세한 내용을 비교하십시오.

스푸핑은 불가능하지 않지만 문제가 줄어 듭니다. 이 해시를 세션 정보 서버 측에만 보관하면 클라이언트에 실제로 보내져서는 안됩니다.

+0

how facebook 뭐하는거야 ?? – SaHil

+0

Facebook은 [Symb] (http://games.symbiant.cz/projects/symb/symb.php)와 같은 시스템을 사용하여 쿠키를 저장합니다. –

관련 문제