【发布时间】:2017-05-29 02:33:25
【问题描述】:
我正在阅读关于protect_from_forgery http://api.rubyonrails.org/classes/ActionController/RequestForgeryProtection.html 的注释,这几行真的让我很困惑。
请务必记住,XML 或 JSON 请求也会受到影响,如果您正在构建 API,您应该更改 ApplicationController 中的伪造保护方法(默认情况下::exception):
class ApplicationController < ActionController::Base
protect_from_forgery unless: -> { request.format.json? }
end
使用protect_from_forgery 方法开启CSRF 保护。默认情况下,protect_from_forgery 使用 :null_session 方法保护您的会话,该方法在请求期间提供一个空会话。
之前说异常是 protect_from_forgery unless: -> { request.format.json? } 的默认值,但后来又说 null_session 是 protect_from_forgery 的默认值。
这是否意味着如果我们使用protect_from_forgery unless: -> { request.format.json? },异常将成为默认值?如果我们使用protect_from_forgery,null_session 会成为默认值吗?
非常感谢任何帮助。
【问题讨论】:
标签: ruby-on-rails json csrf csrf-protection