【发布时间】:2011-03-12 12:35:11
【问题描述】:
如果不启用 cookie,表单帖子将抛出 ActionController::InvalidAuthenticityToken。在大多数情况下,我只是通过一条消息来处理异常,指出需要 cookie 才能登录我的应用程序。
但是,我的应用程序的用户可以做的一件事是创建内容以与可能登录或未登录的其他人共享(这不是必需的)。此外,如果创建者选择这样做,则此内容可以受密码保护。这是我遇到问题的地方。如果重要的话,我使用active_record_store 作为我的session_store,并且还设置了config.action_controller.session。
如果访问者在未启用 cookie 的情况下尝试解锁受密码保护的内容,应用程序将抛出异常,从访问者的角度来看,应用程序会崩溃。我希望能够处理这种情况,但我不知道该怎么做。我可以处理异常并允许在不检查 cookie 的情况下解锁内容,但如果我这样做,我可能不会保护针对 CSRF 的操作,因为无论如何我都会打开一个漏洞,对吗?或者,我可以要求启用 cookie 以便对表单进行身份验证,但在这种情况下确实没有理由要求 cookie。
如果我理解正确,如果我禁用该操作的保护,我只会将解锁受保护的内容暴露给 CSRF 漏洞,但如果无论如何都未启用 cookie,这有关系吗?有没有办法在处理缺少 cookie 时进行保护?
【问题讨论】:
标签: ruby-on-rails cookies csrf