Cooke: SameSite=None non funziona a causa di una versione obsoleta di Rack

Ciao,

Il supporto per SameSite ‘None’ è stato aggiunto (da me) un paio di settimane fa. Ora è possibile selezionare ‘None’ nelle impostazioni dei cookie. Tuttavia, dopo aver modificato e salvato l’impostazione, non è più possibile accedere. La richiesta di sessione/CSRF restituisce un errore 500.

Ho individuato l’errore e i log riportano:
Failed to handle exception in exception app middleware : Invalid SameSite value: "None"
in
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.8/lib/rack/utils.rb:260:in add_cookie_to_header’`

Ho scoperto che la nostra versione attuale di Rack (2.0.8) non supporta il valore SameSite ‘None’ come impostazione. Tale funzionalità è invece supportata dall’ultima versione di Rack.

Nel file Gemfile del progetto è presente un commento con un avviso secondo cui l’aggiornamento di Rack potrebbe causare problemi:

Pertanto, preferirei che a effettuare l’aggiornamento fosse qualcuno con una conoscenza più approfondita del progetto rispetto alla mia.

Considererei questo problema critico, poiché se si modificano le impostazioni dei cookie impostandole su “None”, nessuno riesce più ad accedere e l’unica soluzione consiste nell’intervenire direttamente sul database.

Può qualcuno intervenire per risolvere il problema o fornire assistenza? Non sono molto esperto di Ruby.

1 Mi Piace

Ciao @dave0688 - grazie per aver sollevato la questione. Ho appena rimosso l’opzione samesite=none per evitare di causare un errore del server.

Abbiamo l’aggiornamento di rack nella nostra lista di priorità, ma sarà piuttosto complesso. Non ho una data di completamento esatta.

Una volta effettuato l’aggiornamento, saremo lieti di ripristinare l’impostazione del sito SameSite=none.

6 Mi Piace

@dave0688 Per tua informazione, ora abbiamo aggiornato rack, quindi ho rieseguito il tuo commit

4 Mi Piace