Rails默认CSRF元标签无法验证

时间:2011-06-13 10:31:35

标签: ruby-on-rails-3 csrf w3c-validation

我刚刚在一个新站点上验证了一个新站点,我使用Rails 3编写了W3C标记验证,并且我收到有关rails生成的CSRF标记的错误。

“元素元素属性名称的错误值csrf-param:未注册关键字csrf-param。”

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

“元素元素属性名称的错误值csrf-token:未注册关键字csrf-token。”

<meta name="csrf-token" content="{token}"/>

我将DOCTYPE设置为

<!DOCTYPE html>

据我所知,我不应该添加任何其他内容。有人可以对此有所了解吗?

修改

我正在使用HAML,并想知道这是否是一个因素,所以我设置了一个测试页面,它有一个控制器/动作/视图,只使用Rails默认的erb模板。问题仍然存在。

http://validator.w3.org/check?uri=http%3A%2F%2Fcsrftestsite.heroku.com%2Fhome&charset=%28detect+automatically%29&doctype=Inline&group=0&user-agent=W3C_Validator%2F1.2

1 个答案:

答案 0 :(得分:2)

你不应该为此担心。 HTML5元标记在使用时相当开放。所有这些验证都表明,根据W3C规范,技术上不是那些“合法”的HTML5元数据名称,但它不会影响功能。以下是元标记的建议扩展列表:

http://wiki.whatwg.org/wiki/MetaExtensions

csrf-token和csrf-param已经在“Proposal”状态的列表中。如果将这些添加到W3C规范中,则不应再看到此验证错误。