Domanda

Nel capitolo 8 del tutorial dei binari, Michael Hartl introduce l'idea di "ricordare i token" per ricordare una sessione anche dopo che un browser è chiuso.Si dice che una sessione consiste in un token ricordo che punta a un utente, e questo ricorda il token è memorizzato in un oggetto utente.

In precedenza nel tutorial, passiamo attraverso un sacco di lavoro per hash le nostre password in modo che se il nostro database è violato, le nostre password sono ancora al sicuro.Tuttavia, con l'introduzione di ricordo_tookens, una violazione del database produrrà un testo normale, ricorda il token, rendendo una sessione facile da forgiare.

Forse c'è qualche "magia" intrinseca (come di solito sembra essere il caso) alle rotaie che impediscono a csrf anche con un token ricordo corretto, valido ... Qualcuno mi illumina?

È stato utile?

Soluzione

Solo memorizzando il token della sessione sul client (nei cookie) ti consente di essere vulnerabili agli attacchi CSRF.Per rendere la tua applicazione sicura a questo tipo di attacchi in rotaie hai un aiutante che aggiunge un token CSRF nella pagina

<%= csrf_meta_tags %>
.

e un filtro (protect_from_forgery)

  class FooController < ApplicationController
    protect_from_forgery :except => :index
.

Per ulteriori informazioni sulla visita della sicurezza dei binari: http://guides.rubyonrails.org/security.htmljly/A>

Altri suggerimenti

Violazione del database non produce il testo normale Ricorda token.
Salva solo ricorda il token digests al database.Questi sono hashed come le password all'inizio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top