Cooke: 오래된 Rack 버전 때문에 SameSite=None이 작동하지 않음

안녕하세요,

sameSite ‘None’ 지원은 몇 주 전에 (제가) 추가했습니다. 이제 쿠키 설정에서 'None’을 선택할 수 있습니다. 하지만 설정을 변경하고 저장하면 더 이상 로그인할 수 없습니다. 세션/CSRF 요청이 500 오류를 반환합니다.

해당 오류를 추적해 보니 로그에는 다음과 같이 표시됩니다:
Failed to handle exception in exception app middleware : Invalid SameSite value: "None"
위치:
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.8/lib/rack/utils.rb:260:in add_cookie_to_header’`

현재 사용 중인 Rack 버전(2.0.8)은 sameSite ‘None’ 설정을 지원하지 않는다는 것을 발견했습니다. 최신 Rack 버전에서는 지원됩니다.

프로젝트의 Gemfile에는 Rack 업그레이드가 일부 기능을 깨뜨릴 수 있다는 힌트가 주석으로 남겨져 있습니다:

따라서 프로젝트에 대해 저보다 더 깊은 지식을 가진 누군가가 업그레이드하는 것이 좋겠다고 생각합니다.

쿠키 설정을 "None"으로 변경하면 아무도 로그인할 수 없으며, 이를 수정하는 유일한 방법은 데이터베이스를 통한 것이므로 이를 긴급한 문제로 보고 있습니다.

누군가 수정해 주시거나 도움을 주실 수 있을까요? 저는 Ruby에 대해 아주 전문적이지 않습니다.

1개의 좋아요

안녕하세요 @dave0688 - 이 문제를 제기해 주셔서 감사합니다. 서버 오류를 방지하기 위해 방금 samesite=none 옵션을 제거했습니다.

우리는 rack 업그레이드를 인지하고 있지만, 과정이 꽤 복잡할 것입니다. 정확한 예상 완료 시점을 알 수 없습니다.

업그레이드가 완료되면, SameSite=none 사이트 설정을 다시 추가할 수 있도록 하겠습니다.

6개의 좋아요

@dave0688 참고로 현재 rack가 업그레이드되었기 때문에, 당신의 커밋을 다시 적용했습니다

4개의 좋아요