Heroku值得信赖的代理人

时间:2013-04-23 22:51:52

标签: symfony heroku

我在 Heroku 上运行 symfony2 应用程序,我需要获取可信代理(IP(s)) 我的应用程序将在此处运行,如下所述:http://symfony.com/blog/new-in-symfony-2-3-use-sub-networks-to-configure-trusted-proxies

有一个提及Dyno可以在Dyno manifold 中得到的IP:

  

运行多个dynos时,应用程序分布在多个节点上   由dyno经理。访问您的应用程序总是通过   路由器。

     

因此,dynos没有静态IP地址。虽然你永远不会   直接连接到dyno,可以发出传出   来自dyno的请求。但是,您可以依靠dyno的IP地址   在不同的地方重新开始变化。

框架实际上有一些选项,如:

framework:
    trust_proxy_headers: true

但这很快就会被弃用......

谢谢! :)

3 个答案:

答案 0 :(得分:4)

您可以在前端控制器中添加一个信任传入IP的呼叫(因为到达服务器的唯一方法是通过Heroku路由层):

Request::setTrustedProxies(array($_SERVER['REMOTE_ADDR']));

答案 1 :(得分:0)

根据这些Heroku instructions for SymfonyHeroku headers list,我们可以看到Symfony使用并且可以从Heroku信任的唯一转发标头是X-Forwarded-ForX-Forwarded-Proto和{ {1}}。其他标头不可信任。

我会推荐以下内容:

X-Forwarded-Port

答案 2 :(得分:-2)

嗯,在Heroku上,在dynos上运行的应用只能通过路由层/代理访问,所以你应该很好地相信一切。此外,代理对您的应用程序的请求的路由器的IP也是未知的。

Request::setTrustedProxies(array('0.0.0.0/0'));