我正在开发可通过多个域访问的Heroku应用程序。我需要区分请求与哪个特定域相关。例如,需要构建Location
标头中返回的资源的绝对URL。
我是否可以信任在Heroku应用程序的请求中到达的Host
标头始终指向与应用程序关联的域(默认xyz.herokuapp.com
域或添加了{的域之一{1}}命令)?
我知道用户可以将此标头设置为任何值,但Heroku前端服务器需要进行某种过滤以将请求分派给正确的应用程序。这个过滤子弹证明是否足以信任heroku domains:add
标题?
答案 0 :(得分:5)
如果请求到达您的应用程序,则主机标头将是为您的应用程序配置的标头。
如果主机标头不是您的主机标头,则Heroku服务器会将请求发送到其他位置。
您可以通过发送错误的主机在命令行上证明这一点。 例如:
$ curl "http://ismy.herokuapp.com" -H "Host: notmy.herokuapp.com"
所以,你的问题的答案是肯定的。我相信它。