Rails 关于 Rails 中的 CSRF Token 问题

ecloud · 2017年07月12日 · 最后由 ecloud 回复于 2017年07月12日 · 2237 次阅读

在每个 Rails 生成的页面都通过

<%= csrf_meta_tags %>

生成 CSRF Token

<meta name="csrf-param" content="authenticity_token">
<meta name="csrf-token" content="Sxgm44xH0BeSX3kYS/4EKEvnxFbi/7Vdg4J+iQLm95bB3xrDO8ZE47lR/j5m3Ep+zBC4ehmKJX40v7n+wuPkZQ==">

我有一个疑问,服务器端在接收 POST 请求的时候如何验证 csrf-toke 的有效性?服务器将 csrf-token 存储在哪?比如用户打开多个页面,会有多个不同的 csrf-token,到底验证的机制是什么?

@flypiggys 非常感谢,完美解决问题。我每次遇到这种疑问都不知道如何去查看源码,请问有什么方法吗?

ecloud 回复

这个我就搜了一下 protect_from_forgery 😂😂😂 如果遇到比较复杂无从下手的时候可能还是要根据对 rails 的熟悉程度猜一下要从哪个大的模块里面翻。

flypiggys 回复

非常感谢。

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