Rails中CGI :: Session :: CookieStore :: TamperedWithCookie异常的可能原因是什么?

时间:2020-03-06 14:31:56  来源:igfitidea点击:

在更改应用程序上的config.action_controller.session.secret设置后,我收到了Expiction CGI :: Session :: CookieStore :: TamperedWithCookie(作为完全部署的准备工作的一部分)。

我是否认为在测试人员设置cookie时更改机密是正确的原因,以及可能还有其他原因(都是由于安全攻击和编码问题)

解决方案

是的,测试人员应清除其cookie。每当Cookie无法使用指定的机密解密时,我们都会收到该错误。

异常原因很可能是在测试人员设置cookie时更改了机密。使用秘密对cookie进行加密签名,以防止用户篡改其cookie。例如,他们可能尝试更改其存储的用户ID,以提升其特权。

我们可以要求测试人员清除其Cookie。或者,我们可以捕获异常并删除应用程序的cookie。一些站点更喜欢使用ActiveRecordSession存储来对其会话进行更多控制,因此它们会在需要时删除所有会话,但会降低性能。

我在Github上找到了一个插件,可以捕获错误并将其写入日志,而不会将错误暴露给用户。在Rails 2.1实例上,这个问题困扰着我,它确实解决了问题。