문제

사용자가 사이트에 로그인하고 '나를 기억하세요'라고 말하면 우리는 사용자의 고유 식별자를 얻고 이를 키 크기 256으로 RijndaelManaged로 암호화하고 이를 만료 시간이 say..로 설정된 httponly 쿠키에 저장합니다.120일 동안 서버에 대한 요청이 성공할 때마다 만료가 새로 고쳐집니다.

선택적으로 사용자 에이전트와 ipv4 주소의 일부(마지막 두 옥텟)를 기반으로 초기화 벡터를 생성합니다.

분명히 여기에는 실제 만료 시스템이 구축되어 있지 않습니다. 사용자는 기술적으로 이 암호화된 키를 영원히 사용할 수 있습니다(서버 측 키를 변경하지 않는 경우).

이 기능을 허용하려면 사용자가 로그인을 우회하고 고유 ID(guid)를 제공할 수 있도록 해야 한다는 사실을 고려했는데, guid만으로는 실제 사용자 guid를 추측하기가 정말 어렵다고 생각했습니다. 하지만 GUID를 생성하는 봇노트의 공격에 사이트를 열어둘 것입니다(적법한 GUID를 찾는 것이 얼마나 현실적인지 모르겠습니다)..따라서 서버가 암호화 키를 알고 있고 선택적으로 iv가 브라우저 및 IP 부분에 특정한 암호화가 있는 이유입니다.

서버가 사용자와 관련된 티켓을 발행하고 이러한 티켓에 알려진 만료 날짜가 있어서 서버가 만료를 제어할 수 있는 다른 접근 방식을 고려해야 합니까?만료에 대해 정말 신경을 써야 할까요?나를 기억한다는 것은 결국 나를 기억한다는 것입니까?

겸손 해지기를 고대하고;), 건배.

도움이 되었습니까?

해결책

매우 유사한 질문.

귀하의 질문에 대한 해결책은 이것에 있습니다 블로그 게시물

"영구적 인 로그인 쿠키 모범 사례"는 웹 사이트에 대한 친숙한 "Remember Me"옵션을 구현하는 비교적 안전한 접근 방식을 설명합니다. 이 기사에서는 그 접근 방식의 모든 이점을 유지하는 개선을 제안하지만 공격자가 지속적으로 로그인 쿠키를 도난 당하고 사용했을 때를 감지 할 수 있습니다.

Jacco가 의견에서 말한 것처럼 : 깊이있는 정보에 대해 안전한 인증 읽기 웹 사이트 인증에 대한 결정적인 안내서.

다른 팁

Open ID와 같은 것을 고려 했습니까? 그렇게 사용합니다.

기억되는 정보는 얼마나 중요합니까?매우 개인적이거나 중요한 내용이 아닌 경우에는 쿠키에 GUID를 넣으면 됩니다.

계산에 IP 주소를 포함시키는 것은 공용 네트워크를 사용하는 사용자를 즉시 ​​잊어버리게 만들 수 있으므로 좋지 않은 생각일 수 있습니다.

GUID를 찾기 위해 무차별 대입을 사용하는 것은 말도 안되는 일입니다.128 가능성.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top