protect_from_forgery в Rails 6? - PullRequest
       17

protect_from_forgery в Rails 6?

3 голосов
/ 26 апреля 2019

Метод protect_from_forgery не включен в мой контроллер приложений с приложением Rails 6 по умолчанию, но в макете основного приложения есть встроенный ruby ​​<%= csrf_meta_tags %>. Означает ли это, что метод protect_from_forgery был абстрагирован и больше не требуется явно в контроллере приложения?

Я купил книгу Rails 6 от Pragmatic Programmer, и единственное, что я смог найти, это то, что «метод csrf_meta_tags () устанавливает все закулисные данные, необходимые для предотвращения атак подделки межсайтовых запросов».

1 Ответ

4 голосов
/ 26 апреля 2019

Для рельсов 5.2 и выше по умолчанию включено в ActionController :: Base.Проверьте этот коммит: https://github.com/rails/rails/commit/ec4a836919c021c0a5cf9ebeebb4db5e02104a55


*   Protect from forgery by default

    Rather than protecting from forgery in the generated ApplicationController,
    add it to ActionController::Base depending on
    `config.action_controller.default_protect_from_forgery`. This configuration
    defaults to false to support older versions which have removed it from their
    ApplicationController, but is set to true for Rails 5.2.

В официальных документах: https://edgeguides.rubyonrails.org/configuring.html

config.action_controller.default_protect_from_forgery determines whether
forgery protection is added on ActionController:Base. This is false by default.
...