Amazon ELB后面的symfony2:始终信任代理数据吗?

问题描述 投票:3回答:5

我正在AWS上运行Symfony2 Web应用程序,并且正在使用Elastic Load Balancer。

在控制器方法中,我需要执行以下操作来获取请求网页的用户的IP:

$request->trustProxyData();
$clientIp = $request->getClientIp(True);

这是否存在任何安全风险?我没有使用客户端IP进行特权升级,我只是在记录它。

是否有某种方法可以始终强制trustProxyData(),或者以其他方式将$request->getClientIp()重新配置为DWIM?我的应用程序将始终位于负载平衡器之后(除非我在桌面上进行开发)。

相关:http://fabien.potencier.org/article/51/create-your-own-framework-on-top-of-the-symfony2-components-part-2(但是它没有说明是否有一些全局配置,因此我不必到处都调用trustProxyData())。

symfony proxy amazon-web-services load-balancing
5个回答
4
投票

您可以配置框架捆绑包来执行此操作:http://symfony.com/doc/2.0/reference/configuration/framework.html#trust-proxy-headers

framework:
    trust_proxy_headers: true

1
投票

我不确定是否有任何常规的安全风险,但是我可以给您一个提示,如何避免在每个控制器操作中调用此方法。

app.php之前的$kernel->handle(...);中,您应该设置:

Request::trustProxyData();

欢呼;)


1
投票

注意:

trust_proxy_headers选项已过时,将在Symfony 2.3中删除。

有关如何正确信任代理数据的详细信息,请参见a trusted_proxies a Trusting Proxies。>


1
投票

我用过


© www.soinside.com 2019 - 2024. All rights reserved.