Obecnie pracuję nad aplikacją Railsową z kilkoma innymi programistami, a na serwerze przesyłane są POST przez AJAX przez Angular. Od czasu do czasu zauważyliśmy kilka wyjątków od InvalidAuthenticityToken
, które przechodzą przez nasze dzienniki poczty e-mail, co doprowadziło nas do podjęcia działań.Jaka jest różnica między null_session a reset_session w Railsach 4?
Ponieważ ten wniosek nadchodzi przez Angular, uważam, że traktujemy serwer jako API i powinniśmy używać protect_from_forgery with: :null_session
. Jednak wydaje się, że protect_from_forgery with: :reset_session
zapewnia nam tę samą rozdzielczość.
Nie chcę ślepo podłączać kodu tylko dlatego, że jest to zalecane, więc chciałbym poznać różnicę między tymi dwoma podejściami ochrony przed fałszerstwem. Kiedy powinienem używać jednego nad drugim i dlaczego miałbym preferować jego użycie?
Podana odpowiedź jest dobra, ale polecam nurkowanie w tym głębsze, jeśli chcesz się upewnić, że naprawdę chronisz przed atakami CSRF. Jest kilka ważnych subtelności, które warto zauważyć. Oto kilka artykułów na blogu, które pomogły mi zrozumieć ryzyko, gdy miałem pytania dotyczące tego samego tematu: https://nvisium.com/blog/2014/09/10/understanding-protectfromforgery/ https: //blog.srcclr. com/when-rails-protect_from_forgery-fails/http://www.sitepoint.com/techniques-to-secure-your-website-with-ruby-on-rails-part-1/ Główne miejsce na wynos, które miałem było to, że są ins – aldefouw