我正在开发一个应用程序,我将在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吗?
答案 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应用程序免受跨应用程序超级英雄的攻击:
X-Forwarded-For
header将其限制为客户端的IP地址。我对Heroku的功能请求是,他们应该过滤通过其HTTP路由的HTTP响应,以便托管在其基础结构上的应用程序无法使用Domain=herokuapp.com
设置Cookie。
答案 2 :(得分:0)
在我看来,只要你为example.herokuapp.com
设置cookie,那么cookie就不会被操纵。该Cookie只会显示在example.herokuapp.com
和herokuapp.com
上运行的应用中(不运行应用)。