3

我正在开发可通过多个域访问的 Heroku 应用程序。我需要区分请求与哪个特定域相关。例如,这对于构造标头中返回的资源的绝对 URL 是必需的Location

我是否可以相信Host到达 Heroku 应用程序的请求中的标头始终指向与应用程序关联的域(默认xyz.herokuapp.com域或使用heroku domains:add命令添加的域之一)?

我知道这个标头可以由用户设置为任何值,但是 Heroku 前端服务器需要进行某种过滤才能将请求分派到正确的应用程序。这种过滤防弹足以信任Host标头吗?

4

1 回答 1

6

如果请求到达您的应用程序,则 Host 标头将是为您的应用程序配置的标头。

如果 Host 标头不是您的标头之一,Heroku 服务器会将请求发送到其他地方。

您可以通过发送错误的主机在命令行上证明这一点。例如:

$ curl "http://ismy.herokuapp.com" -H "Host: notmy.herokuapp.com"

所以,你的问题的答案是肯定的。我会相信它。

于 2012-11-30T11:15:11.990 回答