在herokuapp.com上的Heroku应用程序中,cookie是否安全?

时间:2013-03-20 09:28:20

标签: cookies heroku cross-domain

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

我的应用使用Cookie,我想确保其他人无法操纵我的Cookie以保护我的应用免受session fixation和类似攻击。如果attacker.herokuapp.com能够为herokuapp.com设置Cookie,则浏览器将无法保护我,因为herokuapp.com不是public suffix。有关该问题的详细说明,请参阅http://w2spconf.com/2011/papers/session-integrity.pdf

我的问题是:当浏览器无法保护我的用户时,Heroku会阻止herokuapp.com的Cookie吗?

3 个答案:

答案 0 :(得分:7)

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

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

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

答案 1 :(得分:1)

我只是尝试使用响应标头Set-Cookie: name=value;Path=/;Domain=.herokuapp.com从我的Heroku应用程序添加一个cookie,令我失望的是,我可以在浏览器中看到标题完好无损。所以Heroku基础设施不会检测并删除这个跨应用程序的超级英雄。

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

  • 根本不要使用cookies。
  • 使用自定义域。
  • 确认每个Cookie实际上是由您的应用设置的,并通过选中the X-Forwarded-For header将其限制为客户端的IP地址。

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

答案 2 :(得分:0)

在我看来,只要你为example.herokuapp.com设置cookie,那么cookie就不会被操纵。该Cookie只会显示在example.herokuapp.comherokuapp.com上运行的应用中(不运行应用)。