【发布时间】:2016-05-24 18:35:56
【问题描述】:
我有一件很奇怪的事情要测试。 最近,在存储会话信息方面,我们已从 cookie-storage 更改为 active-record-storage。这样做是为了防止在用户注销后使用 cookie 中的 session_id 继续浏览会话(这是您在使用 cookie-storage 时需要遗憾地接受的事情)。
现在我需要编写一些代码来测试迁移到 active-record-storage 是否确实解决了这个安全问题,但我不知道如何。
场景是这样的:
用户 signs in 到应用程序
应用的用户signs out
请求头中的session_id 然后用于获取请求以查看通常需要身份验证的应用程序部分
这应该是不可能的,因为我们没有经过身份验证(尽管我们使用了上一个请求中的 session_id)
我们希望得到 401、404 或 200 以外的任何其他值。
到目前为止,我已经设法从请求中获取 session_id ->
@request.env["rack.sesion.options"][:id]
但我不知道如何使用并将此session_id 放入下一个请求中
有什么想法吗?
【问题讨论】:
-
你试过rack_session_access吗?
-
不,但对于我的情况来说,它似乎是一个不错的宝石。会试一试的!
-
您是否在注销方法中使用
reset_session? -
不,我没有使用它
-
那是你的问题 - 不是 SessionStorage。
标签: ruby-on-rails session rspec