Rails Devise 为什么要加上 secret_key?

linjunhalida · 2015年02月05日 · 最后由 linjunhalida 回复于 2015年02月08日 · 2119 次阅读

Devise3 里面增加了 secret_key 的设置,我有点不是很明白为什么要加这个设置,再把 token 加密一遍。

lockable.rb 里面,验证 token 的时候,会把传到服务器的 unlock_token 用 secret_key digest 一下,然后再和数据库里面保存的比对。

这样的目的是什么?为什么不能直接和数据库里面的 token 比对?是否是让数据库保存的密钥信息都是加密的,防止数据库泄漏之后,有人利用这个数据吗?

应该是防止 Timing Attack 参考 http://drops.wooyun.org/papers/1404

防止 token 被管理员盗用吧。

防 Timing attack

Timing attack。。。原来如此!没有想到字符串比较的时间消耗问题。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号