Rails 关于 Rails 中的 CSRF Token 问题

ecloud · July 12, 2017 · Last by ecloud replied at July 12, 2017 · 2218 hits

在每个 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 非常感谢,完美解决问题。我每次遇到这种疑问都不知道如何去查看源码,请问有什么方法吗?

Reply to ecloud

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

Reply to flypiggys

非常感谢。

You need to Sign in before reply, if you don't have an account, please Sign up first.