2011-02-27 4 views
1

HTTP 세션 ID를 생성하고 가능한 한 충돌을 피하는 가장 좋은 방법은 무엇입니까? 내 세션 ID는 얼마나 오래 있어야합니까?세션 ID 생성

+0

UUID를 사용해 보셨습니까? –

+1

** 오프 주제 ** : 충돌 만이 문제가되는 것은 아닙니다. 예측 가능성을 피하려면 원하는 세션 ID를 발급 한 IP에만 사용할 수 있어야합니다 (명확하지 않은 방식으로). (이것들은 해킹 대책이 아닙니다.) –

+0

그건 완벽하게 주제입니다 :) 후자의 문제로, 내 세션 테이블에 세션 레코드의 IP 주소 열을 가짐으로써 세션 ID를 IP 주소로 잠그는 것으로 충분할 수 있습니까? ? 또한 그렇다면 세션 ID로 요청했지만 잘못된 IP 주소로 요청한 경우 해당 사용자에게 자동으로 로그 아웃하거나 사용자에게 오류 상태를 알려야합니까? –

답변

1

그냥 Guid를 사용하십시오. 이것은 중복 된 것을 얻기가 매우 어려울 것입니다.

+0

어떤 버전을 선택해야합니까? 버전 3, 4 및 5는 완전히 다릅니다. –

+0

C#에는 오직 하나의 Guid 객체 만 있습니다. 어떤 버전인지 모르지만 어느 버전을 사용하든 상관 없다고 생각하십시오. 대부분의 캐릭터 또는 복잡한 캐릭터로 촬영하십시오. 그렇다면 이중 변화를 얻는 데 필요한 변화가 적습니다. 도움이 될 때 대답을 수락하십시오. –

+0

마르코, 저는 C를 사용하고 있습니다 (질문의 태그에 명시된대로). 나는 당신이 v3/v5 (non-random 또는 non-random + random 입력의 해시) 또는 v4 (pure random)의 해시를 사용해야한다고 생각하는지 궁금합니다. –