2010-01-26 3 views
3

사용자가 로그인 할 때 특정 경로 (예 : /foo)로 제한되는 세션 쿠키를 설정하려고합니다. 로그인 페이지가 /이지만 요청이 바로 리디렉션됩니다. ~ /foo/something. 이런 식으로 뭔가 :쿠키 및 경로에 대한 RFC 질문

요청 :

POST/HTTP/1.1 

username=foo&password=bar 

응답 :

HTTP/1.0 302 Found 
Location: http://example.com/foo/home 
Set-Cookie: session=whatever; path=/foo 

그러나, RFC는 관련 비트 내가 (rfc2965rfc2109 등)을 찾을 수있는이 말 :

가능한 보안 또는 개인 정보 침해를 방지하기 위해 사용자 에이전트 rejec TS 쿠키는 (그 정보를 저장하지 않는다) 다음 의 경우 사실이다 : 경로 속성에 대한

  • 값은 요청 - URI의 접두사가 아닙니다.

...

위에서 설명한 쿠키 설정 과정은 작업 괜찮 것 같다,하지만 지금까지 내가 말할 수있는 RFC의는 안 말하고있다.

저는 이것을 프로덕션 시스템에서 사용하고 싶습니다. 그러나 나중에 브라우저의 비 호환성 문제에 직면하게 될 경우 정말로하고 싶지 않습니다.

RFC를 잘못 읽었습니까?

미리 감사드립니다.

답변

1

해당 RFC에는 아무런주의를 기울이지 마십시오. 그들은 현실에서 꽤 나쁘게 갈라진다.

현재 실제 쿠키 동작을 기록하는 IETF WG가 있습니다. 그들의 문서는 단지 초안이지만 훨씬 더 좋은 소스 자료입니다.

은 참조 : 당신이 초안에 질문을 해결 텍스트를 찾을 수없는 경우 http://datatracker.ietf.org/doc/draft-ietf-httpstate-cookie/

는, 실무 그룹과 그것을 가져!

0

귀하의 질문에 따르면, 나는 귀하의 RFC에 대한 이해가 정확하다고 생각합니다. 리디렉션 후 쿠키를 설정하려는 것 같습니다. '/ foo/home'. 나는 진짜 질문은 생각 : "어떻게 사용자가 '/' 제대로 인증 된 것을 '/ foo는/집'을 을 알 수 있습니까?"

당신은 가 '/'가 '/ foo는/집', 그것은 쿼리를 사용하는 것이 작업을 수행 할 수있는 유일한 방법을 보인다 에서 얻을 수있는 위치 헤더 (리디렉션)을 사용해야하는 경우 string 매개 변수는 Location 헤더 값에 있습니다.

고려해야 할 디자인 질문은 사용자가 안전하게 액세스 할 경로 외부의 URL에 대해 인증하는 이유는 무엇입니까? 유일한 보안 콘텐츠가 '/ foo는'미만인 경우, 왜 '/ foo는/로그인' 대신 인증 '/'에 게시하지?