CGI::Session::CookieStore::TamperedWithCookie
更改应用程序的设置后,我收到了异常config.action_controller.session.secret
(作为全面部署准备的一部分。
我是否正确假设在测试人员设置了 cookie 时更改秘密是导致此问题的原因,以及可能存在的其他原因(均由于安全攻击和编码问题)
CGI::Session::CookieStore::TamperedWithCookie
更改应用程序的设置后,我收到了异常config.action_controller.session.secret
(作为全面部署准备的一部分。
我是否正确假设在测试人员设置了 cookie 时更改秘密是导致此问题的原因,以及可能存在的其他原因(均由于安全攻击和编码问题)
您的异常的原因肯定是在测试人员设置了 cookie 时更改了秘密。cookie 使用秘密进行加密签名,以防止用户篡改其 cookie。例如,他们可能会尝试更改他们存储的用户 ID 以提升他们的权限。
您可以要求测试人员清除他们的 cookie。或者,您可以捕获异常并删除应用程序的 cookie。一些站点更喜欢使用ActiveRecordSession存储来更好地控制其会话,因此它们会在需要时删除所有会话,但会以性能为代价。
是的,测试人员应该清除他们的 cookie。任何时候无法使用指定的秘密解密 cookie,您都会收到该错误。
我在 Github 上找到了一个插件,它会捕获错误并将其写入日志,而不会将错误暴露给用户。我在 Rails 2.1 实例上被这个问题困扰,它成功了。