见这里: http: //guides.rubyonrails.org/security.html
[Rails CSRF 保护] 将自动包含一个安全令牌,该令牌是根据当前会话和服务器端机密计算得出的,用于 Rails 生成的所有形式和 Ajax 请求。如果您使用 CookieStorage 作为会话存储,则不需要该密钥。如果安全令牌与预期不匹配,会话将被重置。
我真的希望有人可以向我解释为什么如果我将整个会话存储在 cookie 中就不需要服务器端的秘密。
我问的原因是因为我想弄清楚是否有一种方法可以在 100% 客户端应用程序(ember.js)中生成 CSRF 令牌,我不会让 Rails 在所有表单上插入 CSRF 令牌。我当然可以使用 JavaScript 写入 cookie,我当然可以散列各种值。
如果有某种方法可以使用 JavaScript 在客户端生成 cookie,没有服务器端的秘密,并且能够在服务器上进行验证,请告诉我!