为了账号安全,请及时绑定邮箱和手机立即绑定

理解Rails的真实性令牌

理解Rails的真实性令牌

慕慕森 2019-06-27 15:54:30
理解Rails的真实性令牌我在Rails中遇到了一些关于真实性令牌的问题,因为我现在已经有很多次了。但我真的不想只解决这个问题继续下去。我真的很想了解真伪标记。好吧,我的问题是,你是否有关于这个问题的完整的信息来源,或者你是否会花时间在这里详细解释?
查看完整描述

3 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

什么是CSRF?

真实性令牌是针对跨站点请求伪造(CSRF)的一种对策.你问什么是CSRF?

攻击者可以在不知道会话令牌的情况下劫持会话。

假想:

  • 访问你银行的网站,登录。
  • 然后访问攻击者的站点(例如,来自不受信任组织的赞助广告)。
  • 攻击者的页面包括与银行“转移资金”表单相同字段的表单。
  • 攻击者知道您的帐户信息,并有预先填写的表单字段,以将资金从您的帐户转移到攻击者的帐户。
  • 攻击者的页面包括向银行提交表单的Javascript。
  • 当表单提交时,浏览器将包含银行站点的cookie,包括会话令牌。
  • 银行把钱转到攻击者的账户上。
  • 表单可以是不可见的iframe,所以您永远不知道攻击发生了。
  • 这被称为跨站点请求伪造(CSRF)。

CSRF溶液:

  • 服务器可以标记来自服务器本身的表单。
  • 每个表单必须包含一个附加的身份验证令牌作为隐藏字段。
  • 令牌必须不可预测(攻击者无法猜测)。
  • 服务器在其页面中的窗体中提供有效的令牌。
  • 当表单发布时,服务器检查令牌,拒绝没有正确令牌的表单。
  • 示例令牌:使用服务器密钥加密的会话标识符。
  • Rails会自动生成这样的令牌:请参见每种形式中的RETURY_TOKEN输入字段。


查看完整回答
反对 回复 2019-06-27
  • 3 回答
  • 0 关注
  • 567 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信