4

我正在开发一个应用程序,我将部署在 Heroku 上。该应用程序仅iframe在另一个站点上使用,因此我不在乎域名。我计划在 上部署我的应用程序,example.herokuapp.com而不是在example.com.

我的应用程序使用 cookie,我想确保其他人无法操纵我的 cookie 以保护我的应用程序免受会话固定和类似攻击。如果attacker.herokuapp.com能够为 设置 cookie herokuapp.com,浏览器将无法保护我,因为herokuapp.com它不是公共后缀。有关该问题的详细说明,请参阅http://w2spconf.com/2011/papers/session-integrity.pdf

我的问题是:当浏览器无法保护我的用户时,Heroku 会通过阻止 cookie 来做到这一点herokuapp.com吗?

4

3 回答 3

8

只是想为像我一样遇到这个问题的任何人发布更新。我正在研究一个类似的问题,除了我想有目的地允许从两个不同的 heroku 应用程序访问同一个 cookie。

“herokuapp.com”和“herokussl.com”现在位于Public Suffix List中,因此如果为这些域之一设置了cookie ,它们应该是安全的。我最终不得不使用自定义域来在两个应用程序之间共享 cookie。

Heroku 还发布了一篇关于该主题的文章:https ://devcenter.heroku.com/articles/cookies-and-herokuapp-com

于 2013-12-26T23:19:14.827 回答
1

我只是尝试从我的 Heroku 应用程序中添加一个带有响应头的 cookie,但Set-Cookie: name=value;Path=/;Domain=.herokuapp.com令我失望的是,我可以在浏览器中看到完整的头。因此 Heroku 基础设施不会检测和删除这个跨应用超级cookie。

我看到了三种可能的方法来保护 Heroku 应用程序免受跨应用程序超级cookies:

  • 根本不要使用cookies。
  • 使用自定义域。
  • 验证每个 cookie 是否确实由您的应用程序设置,并通过检查headerX-Forwarded-For其限制为客户端的 IP 地址。

我对 Heroku 的功能请求是他们应该过滤通过其 HTTP 路由的 HTTP 响应,以便托管在其基础架构上的应用程序无法使用Domain=herokuapp.com.

于 2013-03-20T09:28:20.273 回答
0

在我看来,只要您将 cookie 设置为example.herokuapp.com,那么 cookie 就不会被操纵。cookie 只会呈现给正在运行的应用程序example.herokuapp.comherokuapp.com(没有运行应用程序的地方)。

于 2013-03-20T17:53:24.997 回答