6

设计是否容易通过正常的 http:// 连接受到会话劫持?我无法从文档中弄清楚。

4

2 回答 2

8

是的。Rails 管理会话的默认方式很容易被劫持。

这是因为它将客户端进一步需要在 HTTP cookie 中标识自己的所有信息传输给客户端。在大多数情况下,任何可以拦截 HTTP 连接的人都可以从 Rails 的角度假定客户端的身份。

最简单的对策是仅通过 HTTPS 为您的站点提供服务,并让 Rails 发出securecookie,这会告诉浏览器仅通过 HTTPS 发送该 cookie。安全指南有更多有用的提示。

于 2012-10-13T20:20:34.320 回答
5

正如在 Devise 讨论组的这封电子邮件中提到的,应用程序的安全设置位于主应用程序的域中(在本例中,我假设是 Rails)。

请查看RailsCast 插曲 - 会话劫持的危险,以处理 Rails 应用程序级别的会话劫持。

Rails 安全指南的会话劫持部分是另一个必须阅读的资源。

通过在Rails 应用程序:secure => true的文件中设置,Devise 提供了强制仅使用 SSL 的 cookie 。config/initializers/devise.rb

于 2012-10-13T20:07:39.967 回答