[javascript] SameSite = None;을 설정 한 후에도 Safari에서 쿠키를 보내지 않습니다. 안전한

우리의 응용 프로그램은 쿠키를 사용하여 사용자 로그인을 기억합니다. 인증 API를 호출 할 때마다 브라우저는 서버 요청 HTTPonly 쿠키를 API 요청에 첨부하고 인증을받습니다. 이 동작은 Mojave가 릴리스 된 후 사파리에서 중단 된 것 같습니다.

safari가 구현 한 사이트 간 쿠키 보안에 대해 읽었으며 서버 팀 SameSite=None;Secure은 쿠키를 설정하는 동안 추가 했습니다. 그 후에도 여전히 작동하지 않습니다.

Set-Cookie: my_cookie=XXXXX; path=/; secure; HttpOnly; SameSite=None

실제로 해결책을 찾은 사람들에게 조언하거나 링크를 제공하십시오 ..



답변

MacOS 10.14의 Safari 버전과 iOS 12의 모든 브라우저는 이 버그의 영향을받습니다. 즉 , 가장 제한적인 설정 SameSite=None으로 잘못 취급됩니다 SameSite=Strict.

SameSite 쿠키 레시피 에 대한 지침을 다음 중 하나 에 게시했습니다 .

  • 두 가지 쿠키 세트를 사용하여 지원하는 브라우저와 지원 SameSite=None; Secure하지 않는 브라우저를 설명합니다 .
  • 호환되지 않는 브라우저에 대해 사용자 에이전트 스니핑하고 SameSite=None해당 요청을 처리 하지 않습니다 .

답변

Ruby로 코딩 된 애플리케이션 (특히 Rails, Sinatra 또는 Rack 상단에있는 것)의 경우 RailsSameSiteCookie gem은이 문제와 관련 문제를 매우 잘 해결합니다. 이 코드 는 취성 정규 표현식없이 Chromium 토론에서 의사 코드 의 거의 번역처럼 읽습니다 .


답변