在rails教程的第8章中,Michael Hartl介绍了“记住令牌”的概念,以便即使在浏览器关闭后也能记住会话。他提到,会话由指向用户的记忆令牌组成,而这个记忆令牌存储在用户对象中。
在本教程的前面,我们做了大量工作来散列密码,以便在数据库被攻破的情况下,密码仍然是安全的。然而,随着remember_tokens的引入,数据库漏洞将产生一个纯文本的记忆令牌,使得会话很容易伪造。
也许rails有一些固有的“魔力”(通常看起来是这样),即使使用适当、有效的记住令牌,也会阻止CSRF……有谁能开导我吗?
发布于 2012-03-10 06:05:10
仅仅是将会话令牌存储在客户端(在cookie中)就会使您容易受到CSRF攻击。为了使您的应用程序能够安全地抵御rails中的此类攻击,您有一个助手,它在页面中添加一个CSRF令牌
<%= csrf_meta_tags %>和一个过滤器(protect_from_forgery)
class FooController < ApplicationController
protect_from_forgery :except => :index有关rails安全性的更多信息,请访问:http://guides.rubyonrails.org/security.html
发布于 2014-11-26 09:25:19
破坏数据库不会生成纯文本的记忆标记。
我们只将记住的令牌摘要保存到数据库。这些是散列的,就像早期的密码一样。
https://stackoverflow.com/questions/9641312
复制相似问题