Rails 开发小程序时,怎么处理 CSRF 的问题?

QueXuQ · 2019年05月16日 · 最后由 luikore 回复于 2019年05月20日 · 497 次阅读

我用的是:

gem "graphql"
gem 'graphiql-rails', group: :development

官方也有解决CSRF的方法。

headers: {
     'X-CSRF-Token': $("meta[name=csrf-token]").attr("content"),
 }

可是在小程序项目中,比较另类。
不知道各位怎么处理这个问题的呢?难道直接把CSRF关掉?

共收到 4 条回复

API 模式下都可以关掉 CSRF

  • Gemfile gem 'rack-cors'

  • config/initializers/cors.rb

    Rails.application.config.middleware.insert_before 0, Rack::Cors do
    allow do
    origins '*'
    
    resource '*',
    headers: :any,
      methods: [:get, :post, :put, :patch, :delete, :options, :head]
    end
    end
    
w7938940 回复

你这是跨域

凡用 token 验证的,都不需要 CSRF

另外由于大部分浏览器支持 Origin,现在服务器验证 Origin 对不对就可以了,也不用 CSRF token 了

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册