Ruby on rails 何时使用/不使用防止伪造

Ruby on rails 何时使用/不使用防止伪造,ruby-on-rails,json,authentication,antiforgerytoken,Ruby On Rails,Json,Authentication,Antiforgerytoken,我知道如何启用/禁用真实性令牌验证,但我不知道何时启用它才有意义 例如,在rails应用程序中,我了解的是以下内容。如果我弄错了,请告诉我 网站: 公共页面(未标记)应启用真实性令牌验证 身份验证页面(登录、注册、丢失密码…)应启用真实性令牌验证 私人页面(已登录)不需要启用真实性令牌验证 Api: 公共api(未标记、JSON访问)应支持真实性令牌验证 身份验证api(登录、注册、丢失密码…、JSON访问)应启用真实性令牌验证 私有api(登录、JSON访问)不需要启用真实性令牌验证 私

我知道如何启用/禁用真实性令牌验证,但我不知道何时启用它才有意义

例如,在rails应用程序中,我了解的是以下内容。如果我弄错了,请告诉我

网站:

  • 公共页面(未标记)应启用真实性令牌验证
  • 身份验证页面(登录、注册、丢失密码…)应启用真实性令牌验证
  • 私人页面(已登录)不需要启用真实性令牌验证
Api:

  • 公共api(未标记、JSON访问)应支持真实性令牌验证
  • 身份验证api(登录、注册、丢失密码…、JSON访问)应启用真实性令牌验证
  • 私有api(登录、JSON访问)不需要启用真实性令牌验证

    • 私人页面不需要启用CSRF保护是不正确的。对用户进行身份验证的私有页面是易受攻击的页面。在这种攻击中,登录的用户被欺骗(例如,通过单击电子邮件中的链接)采取他们不打算采取的行动,而网站接受这种行为,因为它来自具有有效会话的登录用户<代码>保护\u免受伪造通过确保非
      获取
      请求只能由知道他们正在采取的行动的用户从站点本身发起来防止这种情况。

      非常清楚,谢谢。JSON请求(例如来自移动应用程序)如何?我猜在那里没有被“欺骗”的风险,对吗?知道Cookie在应用程序的“内部”,并且应用程序不接受可以通过简单链接执行的外部操作。只要攻击者能够诱骗用户从其他上下文发起相同的请求,您就容易受到攻击。例如,请参阅的“后场景”部分。同源策略限制似乎使对非GET或POST请求执行此攻击更加困难,但并非不可能(请参阅同一页上的“其他HTTP方法”)。我的经验法则是:在假设请求不能伪造时要非常小心,在启用保护方面要犯错。