Rails 关于 Rails 中的 CSRF Token 问题

ecloud · 发布于 2017年07月12日 · 最后由 ecloud 回复于 2017年07月12日 · 385 次阅读
96

在每个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,到底验证的机制是什么?

共收到 4 条回复
96

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

3444
32ecloud 回复

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

96
3444flypiggys 回复

非常感谢。

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