Cooke: SameSite=None não funciona devido à versão desatualizada do Rack

Olá,

O suporte para sameSite ‘None’ foi adicionado (por mim) há algumas semanas. Agora é possível selecionar ‘None’ nas configurações de cookie. No entanto, ao alterar e salvar, não é mais possível fazer login. A solicitação de sessão/CSRF retorna um erro 500.

Rastreei esse erro e os logs indicam:
Falha ao lidar com exceção no middleware de exceção do app: Valor SameSite inválido: "None"
em
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.8/lib/rack/utils.rb:260:in add_cookie_to_header’`

Descobri que nossa versão atual do Rack (2.0.8) não suporta o sameSite ‘None’ como configuração. Essa funcionalidade é suportada pela versão mais recente do Rack.

O arquivo Gemfile do projeto contém um comentário com uma dica de que a atualização do Rack pode quebrar algo:

Portanto, prefiro que alguém com conhecimento mais profundo do projeto do que o meu realize essa atualização.

Considero isso crítico, pois, se as configurações de cookie forem alteradas para “None”, ninguém conseguirá mais fazer login, e a única forma de corrigir o problema é diretamente no banco de dados.

Alguém poderia, por favor, corrigir isso ou ajudar? Não sou muito experiente em Ruby.

1 curtida

Olá @dave0688 - obrigado por levantar isso. Acabei de remover a opção samesite=none, para evitar causar um erro no servidor.

Temos a atualização do rack em nosso radar, mas será bastante complicada. Não tenho uma data estimada exata.

Assim que for atualizada, ficaremos felizes em adicionar novamente a configuração do site SameSite=none.

6 curtidas

@dave0688 FYI, o rack foi atualizado, então reapliquei seu commit

4 curtidas