2014-09-22 2 views
0

이것은 이해하기 너무 쉽지만 나는 그 주위에 머리가 있다고 확신하지 못합니다.사용자 ID 저장을 위해 장고 세션 데이터를 처리하는 방법은 무엇입니까?

사용자가 내 앱의 첫 번째 페이지에 가입하면 등록 완료 페이지 2에 사용 된 request.session['user_id'] 세트가 있습니다. user_id사용자 테이블에있는 사용자의 기본 키이지만 사용자 번호를 session에 저장하고 싶지 않습니다. 위조가 가능성이 있으며 WRONG 행이 업데이트 될 수 있습니다.

나는 나의 스크립트 만 장고의 세션 테이블에 의해 생성 될 것 토큰 같은 만 (SESSION_KEY, session_data,을 EXPIRE_DATE) 세 개의 열이 원하는 것이 그것은 자동으로 세션 정보를 저장합니다.

내 질문에 정확하게 위치 :

  1. 나는 세션 테이블 어설프게 및 IT에 session_token를 추가하거나 내 자신의 테이블을 만들 필요가?
  2. 장고의 다른 열과 마찬가지로 자동으로 session_token을 저장합니까? 세션 테이블?
  3. 또는`request.session [ 'user_id']은 안전하고 안전합니까?
  4. 조리대에도 해당되며 SESSION_EXPIRE_AT_BROWSER_CLOSEFALSE으로 설정되어있는 경우 왜 쿠키를 사용해야합니까?
+1

장고 커뮤니티는 보안에 대해 매우 분별력이 있습니다. IMHO는 세션을 관리하는 방식이 절대적으로 안전합니다. (나는 장고에 기반한 은행 업무 응용 프로그램에서 일했다) – Griffosx

+0

@ 그리 펙스 :'request.session [ 'user_id']는 안전하고 안전하다고 말하는가? – Yax

+0

@Yax 다중 페이지 가입 프로세스에 양식 마법사를 사용하지 마십시오. –

답변

1

세션은 사용자의 쿠키가 아니라 데이터베이스에 저장됩니다. 사용자가 해당 데이터를 변경할 수있는 방법은 없습니다. 쿠키에 저장된 유일한 것은 세션 ID 자체의 해시입니다.

+0

좋습니다.하지만 쿠키를 사용한다고 가정 할 때 고정을 피하기 위해 사용자가 로그인 할 때마다 세션 ID 및 업데이트 세션 테이블의 해시를 다시 생성하려면 어떻게해야합니까? – Yax

+2

무엇? 그것은 당신의 질문과는 아무런 관련이 없습니다. 당신은 로그인하지 말고 로그인하는 것에 대해 이야기하고있었습니다. 그렇지만 그것은 장고가하는 것과 정확히 같습니다. 적절한 보안 의식을 지닌 웹 프레임 워크로서, 이것은 모두 당신을 위해 관리됩니다. [로그인 방법의 구현] (https://github.com/django/django/blob/master/django/contrib/auth/__init__.py#L98)을 참조하십시오. –

+0

이 답변에 1시 3 분? 4는 어때? – Yax

관련 문제