Railstutorial.org&Recess_tokens.
-
10-12-2019 - |
题
在Rails教程的第8章中,Michael Hartl介绍了“记住令牌”的想法,以便即使在浏览器关闭之后也记住会话。他提到了会话由记住令牌组成,该令牌指向用户,而这将记住令牌存储在用户对象中。
在教程中早期,我们通过很多工作来哈希我们的密码,以便如果我们的数据库遭到破坏,我们的密码仍然是安全的。但是,通过引入Record_Tokens,数据库违规将产生纯文本记住令牌,使易于锻造的会话。
也许有一些固有的“魔法”(通常似乎是这种情况)到阻止CSRF的轨道,即使有适当的,有效的记住令牌......任何人都可以启发我吗?
解决方案
只是通过将会话令牌存储在客户端(在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
其他提示
违反数据库不会产生纯文本记住令牌。
我们只将记住令牌摘要保存到数据库中。这些都像早期的密码一样哈希。
不隶属于 StackOverflow