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