【问题标题】:How can I change the meta tags name of 'csrf-param' and 'csrf-token' in Rails 4?如何在 Rails 4 中更改“csrf-param”和“csrf-token”的元标记名称?
【发布时间】:2014-11-21 22:31:47
【问题描述】:

正如标题所述,我想知道如何更改 csrf-paramcsrf-token 的元标记名称?

<meta content="authenticity_token" name="csrf-param" />
<meta content="123456" name="csrf-token" />

我之所以问这个问题,是因为出于安全原因,我想隐藏我正在使用哪种技术来为我的网站提供动力。 Chrome 插件Wappalyzer 使用此元标记作为Ruby on Rails 的指示符。

【问题讨论】:

标签: ruby-on-rails ruby-on-rails-4 csrf


【解决方案1】:

创建一个名为change_csrf_name.rb的初始化器

在此文件中,您可以更改 :name =&gt; 'xyz'。请注意,它可能会破坏一些您没有预料到的内置功能。

module ActionView
  module Helpers
    module CsrfHelper
      def csrf_meta_tags
        if protect_against_forgery?
          [
            tag('meta', :name => 'csrf-param', :content => request_forgery_protection_token),
            tag('meta', :name => 'csrf-token', :content => form_authenticity_token)
          ].join("\n").html_safe
        end
      end
    end
  end
end

【讨论】:

  • 感谢您的回答。我的 JavaScript 有时需要这个元标记,它们可以在 AJAX 请求上将 CSRF 令牌发送到服务端。基本上我只是问如何重命名这些元标记的name 属性。
猜你喜欢
  • 2016-04-19
  • 2018-01-27
  • 2012-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-29
  • 1970-01-01
相关资源
最近更新 更多