문제

Gmail의 쿠키를 보면 "기억 나게"쿠키에 저장된 내용을 쉽게 알 수 있습니다. 사용자 이름/일회성 액세스 원인. 사용자 이름이 비밀 인 경우에도 다르게 구현 될 수 있습니다. 그러나 무엇이든 ... 물건은 보안이 매우 높지 않습니다 : 당신은 쿠키를 훔치고 갈 준비가되어 있습니다.

그러나 내 질문은 기능적 측면에 있습니다. 액세스 토큰은 언제 닦아 냅니까? 사용자가 로그인하는 경우 없이 다른 컴퓨터에서 "기억"을 클릭하면 액세스 토큰을 무효화해야합니다. 모든 기계? 나는 이것이 전통적으로 어떻게 구현되는지, 그리고 그것이 어떻게 구현되어야하는지 묻습니다.

도움이 되었습니까?

해결책

나는 정기적으로 2 ~ 3 개의 기계를 동시에 사용하고 있으며, 모든 기계를 "기억하십시오". 그들 중 한 명이 매우 성가신 다른 사람들을 단절 한 경우, 나는 그것을 추천하지 않을 것입니다.

전통적으로 그것은 타임 아웃을 사용하고, 쿠키는 일정 시간이 지나면 (또는 사용자가 로그 아웃 할 때) 만료됩니다.

그것은 모두 보안 모델에 따라 다릅니다. 한 사용자가 한 컴퓨터에있을 것으로 기대하는 내부 회사 응용 프로그램을 작성하는 경우 Gmail보다 더 엄격한 제한을 원할 수 있습니다.

또한 서비스 거부 가능성을 명심하십시오. 한 머신의 조치가 다른 기계의 조치로 다른 기계를 사용할 수 없도록 할 수 있다면 합법적 인 사용자가 특정 시나리오에서 제어를 방지하는 데 사용할 수 있습니다.

다른 팁

기사 영구 로그인 모범 사례 그리고 개선 된 영구 로그인 모범 사례 이러한 종류의 기능을 구현하는 방법에 대한 훌륭한 참조입니다.

이 stackoverflow 질문도 참조하십시오

다른 컴퓨터에서 로그온한다고해서 다른 컴퓨터의 쿠키와 관련된 로그인을 무효화해서는 안됩니다. 그러나 사용자가 로그 아웃하거나 "여기에 로그인하지 않습니까? 여기에 로그인"하면 사용자가 작동하는 쿠키를 지 웁니다.

그건 그렇고 쿠키를 훔치는 것은 HTTPS를 주장하고 스크립팅을위한 것이 아닌 쿠키를 열심히 만들 수 있습니다.

쿠키의 아웃 풋에 "; httponly"를 추가함으로써 쿠키를 JavaScript에 사용할 수 없게 만듭니다.

HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Vary: Accept-Encoding
Server: Microsoft-IIS/7.0
Set-Cookie: ASP.NET_SessionId=ig2fac55; path=/; HttpOnly
X-AspNet-Version: 2.0.50727
Set-Cookie: user=t=bfabf0b1c1133a822; path=/; HttpOnly
X-Powered-By: ASP.NET
Date: Tue, 26 Aug 2008 10:51:08 GMT
Content-Length: 2838

이것에 대한 자세한 내용을 읽을 수 있습니다

기억 나 쿠키는 기계를 식별해야합니다. 기억하고 싶은 곳과 다른 곳 (가정 대 작동)이 있기 때문에 기계와 관련이 있어야합니다.

만료 날짜는 일반적으로 합리적인 기간 (2 주)으로 또는 사용자가 기계에서 명시 적으로 로그 오프 한 후에 설정됩니다.

내가 할 일은 각 세션을 IP 주소로 연결하는 것입니다. A 세션 토큰이 귀하가 가지고있는 것과 다른 IP에서 전송되면 거부하십시오.

액세스 토큰은 기계에서 쉽게 전송할 수 없도록 IP 특이 적이어야합니다.

또한 사용자가 액티브 토큰을 사용하는 기계를 볼 수있는 방식으로 구현해야합니다.

다른 컴퓨터에서 새로운 토큰이 생성되면 토큰을 죽이기로 선택한 사이트 - 사용자가 여러 컴퓨터에서 서비스에 액세스하지 못하거나 사용이 다시 로그인하는 것이 정당화되도록 선택하십시오.

귀하가 사용하는 정책은 실제로 보유하고있는 데이터와 사용자의 요구에 따라 다릅니다.

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