Ho appena effettuato il passaggio da Rails 3.2 a Rails 4. Sto cercando di essere il più veloce possibile sui problemi di sicurezza e sono preoccupato per le sessioni in questo momento. Sembra che Rails 4 si sia allontanato dal supportare davvero qualsiasi ECCEZIONE di sessioni basate sui cookie, ma sembra che non sia possibile impedire che le sessioni basate su cookie vivano per sempre. Ho letto diversi articoli, ma questo è il più ufficiale: http://guides.rubyonrails.org/security.html#session-expiry. Si noti come fanno notare che questo è un problema per le sessioni basate sui cookie, quindi forniscono una correzione per le sessioni basate su database (che ora sono deprecate, apparentemente).Rails 4: Scadenza sessione?
Sono davvero confuso. Voglio essere in grado di impedire a un utente malintenzionato di ottenere un cookie che gli dia accesso permanente al mio sito protetto da accesso. Ovviamente posso impostare: expire_after in initializers/session_store.rb, ma a meno che non sbaglio, imposta semplicemente la scadenza del cookie che è lato client e facilmente alterata da un utente malintenzionato in modo che la sessione possa vivere per sempre. Ovviamente posso migliorare le cose forzando SSL, usando i cookie sicuri e costringendo solo HTTP, ma questa non sarà mai una difesa completa finché non riuscirò a far rispettare la scadenza della sessione.
Come posso risolvere questo problema quando Rails disapprova l'unico modo di avere sessioni lato server?
So che le sessioni di registrazione attive sono state spostate in una gemma ed è ancora disponibile, ma il fatto rimane che è stato deprecato. Una soluzione dovrebbe essere possibile senza introdurre più dipendenze o, quanto meno, senza utilizzare funzionalità deprecate.
Perché questo sta ottenendo downvotes (senza commenti) diversi anni dopo che è stato chiesto? – Kyle
È una domanda molto valida - e le guide di Rails sono ... beh .. cosa sono. Sarei lieto di sapere una buona risposta alla tua domanda perché capisco perfettamente perché ti sei confuso da ciò che è ancora lì, anche nell'ultimo "edge". – silverdr