쿠키 기반 웹 인증에 대한 모범 사례는 무엇입니까?


11

CGI와 Python을 사용하여 소규모 프로젝트를 진행하고 있습니다. 확장 성은 문제가 아니며 매우 간단한 시스템이어야합니다.

쿠키를 사용하여 인증을 구현할 계획을 세우고 모범 사례가 확립되어 있는지 궁금합니다.

사용자가 성공적으로 인증되면 쿠키를 사용하여 누가 로그온했는지 확인하고 싶습니다. 모범 사례에 따르면 그러한 쿠키에 무엇을 저장해야합니까?

답변:


12

가장 좋은 경우 : 필요한 다른 모든 정보와 관련된 단일 ID로, 데이터베이스에 저장됩니다.

거기에 다른 정보를 넣는 것이 합리적 일 수 있지만 드물다. 당신은 항상 적어도 다섯 번 이유를 스스로에게 물어봐야 합니다.

SSL은 세션 하이재킹으로부터 사용자를 보호하지만 암호화되지 않은 민감한 정보는 쿠키에 저장하지 않습니다. 기본적으로 하드 드라이브에 일반 텍스트로 저장됩니다.

마지막으로 가장 중요한 것은 XSS 및 CSRF 공격으로부터 사용자를 보호합니다 .

다른 서버의 Javascript는 사용자 모르게 변경 될 수 있으며이 Javascript는 쿠키 데이터에 액세스 할 수 있으므로 XSS 보호는 일반적으로 Javascript를 포함 할 때주의하는 것만 큼 간단합니다. 따라서 Evil Corp의 컨텐츠 전송 네트워크를 사용하여 jQuery 스크립트를 제공하는 경우 갑자기 사용자 코드를 전송하는 코드를 추가 할 수 있습니다. 당신은 모른다; 당신의 사용자는 모른다.

스크립트를 다운로드하여 자신의 서버에서 제공하거나 Google 또는 Yahoo와 같은 신뢰할 수있는 CDN을 사용하십시오.

CSRF 보호는 일반적으로 양식의 숨겨진 필드에 임의 값을 가짐으로써 수행됩니다. 양식을 다시 제출할 때 같은 컴퓨터에서 온 것인지 확인할 수 있도록 세션에 값이 유지됩니다.

대부분의 웹 프레임 워크에는 이제 해당 토큰을 포함하기위한 매우 간단한 기술이 있습니다.


3
  • securehttpOnly플래그를 사용하십시오 .
  • 세션 쿠키 데이터를 인코딩하고 암호화 된 데이터를 MAC로 암호화하여 서명합니다. 세션 쿠키 데이터를 해독하기 위해 매번 서버에서 서명을 확인하십시오. 기본적으로이 작업이 수행됩니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.