2010-11-29 4 views
5

FormsAuthentication.SetAuthCookie()를 사용하여 쿠키에 UserId (데이터베이스의 기본 키) 만 저장하고 AAS로 저장하는 것이 안전한지 궁금합니다. 쿠키를 유지 하시겠습니까?ASP.NET에서 SetAuthCookie()를 사용하여 userId 만 저장하는 것이 안전합니까?

사람들이 사용자 이름을 저장하는 예제를 많이 보았지만이 (userId)는 얻을 수있는 한두 자리 숫자가 될 수 있습니다. 그럼 제 질문은 제가해야합니까? 그렇지 않다면 사용자 이름을 단순히 저장하면 왜 그리고 더 좋을까요?

답변

4

는 안전 하지 않습니다 그 값을 암호화되지 않은 상태로 저장 한 다음 해당 값을 쿠키에서 다시 읽고 후속 요청에서 사용자 ID를 인증하는 데 사용합니다 (이 방법을 사용하면 사용자 이름을 사용하는 것이 안전하지 않을 수 있습니다).

쿠키의 값을 변경하는 것이 쉽지 않으므로 사용자가 다른 사용자의 ID를 포함 할 수 있으므로 안전하지 않습니다.

그러나 사용자 ID를 FormsAuthenticationTicket.UserDataencrypt the ticket에 저장하는 것은 안전합니다.

+9

이 답변은 완전히 정확하지 않습니다. FormsAuth 토큰의 * 전체 * 내용은 사용자 이름/사용자 ID를 포함하여 암호화되고 서명되어 있으므로 위조 할 수 없습니다. 사용자 이름 대신 사용자 ID를 SetAuthCookie에 대한 매개 변수로 전달하는 것은 기본적으로 보안 속성을 긍정적 또는 부정적으로 변경하지 않습니다. – Levi

+2

당신이 옳습니다; 질문을 빨리 읽고 SetAuthCookie 사용에 대한 특정 참조를 놓쳤습니다. –

0

나는 사람들이 (그것의 소리로) 바로 사용자 ID와 함께 많은 것을 할 수 있다고 생각하지 않습니다 (이는 다시 짧은 이름이 될 수 있습니다) 또는 데이터베이스의 기본 키

관련 문제