2014-09-26 50 views
5

正如标题所述,我不知道如何改变meta标签名称csrf-paramcsrf-token如何在Rails 4中更改'csrf-param'和'csrf-token'的元标记名称?

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

我问这个,因为安全的原因,我想隐藏,我使用我的动力的网站,技术。 Chrome插件Wappalyzer使用此元标记作为Ruby on Rails的指标。

enter image description here

+1

看起来它可能就像一个简单的猴子补丁一样容易改变名称。然而jquery_ujs可能是另一个问题。 Rails在'ActionView :: Helpers :: CsrfHelper'中定义它(https://github.com/rails/rails/blob/master/actionview/lib/action_view/helpers/csrf_helper.rb) – 2014-09-26 20:41:59

+0

谢谢你的回答。我需要更改Rails接收CSRF令牌的部分吗? – Robin 2014-09-29 05:08:22

回答

1

创建一个名为change_csrf_name.rb

一个初始化这个文件中,您可以更改:name => '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 
+0

谢谢你的回答。我需要这些元标记有时用于我的JavaScript,他们可以通过AJAX请求将CSRF令牌发送给serven。基本上我只是问如何重命名这些meta标签的'name'属性。 – Robin 2015-02-13 09:23:56