信任代理

编辑该页面

警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 3.2,不再维护。

这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。

信任代理

提示

如果你使用Symfony框架,从阅读开始欧宝娱乐app下载地址如何配置Symfony背后的工作负欧宝娱乐app下载地址载均衡器或反向代理吗

如果你发现自己在某种代理——就像一个负载平衡器,那么某些头信息可以使用特殊的寄给你X-Forwarded - *头或转发头。例如,主机HTTP头通常是用来返回所请求的主机。但当你在一个代理,实际的主机可能存储在一个X-Forwarded-Host头。

由于HTTP头可以欺骗,Symfony欧宝娱乐app下载地址信任在缺省情况下,这些代理标题。如果您是在代理,代理你应该手动白名单如下:

1 2 3 4 5
使用欧宝娱乐app下载地址\组件\HttpFoundation\请求;/ /把这个代码尽可能早地在您的应用程序(例如在你/ /前端控制器)只信任代理标题来自这些IP地址请求::setTrustedProxies (数组(“192.0.0.1”,“10.0.0.0/8”));

你还应该确保代理过滤器未经授权使用这些头文件,例如,如果一个代理本地使用X-Forwarded-For头,它不应该让客户发送转发Symfony的头。欧宝娱乐app下载地址

如果你的代理不适当过滤头,您需要配置Symfony不相信头你的代理没有过滤器(见下文)。欧宝娱乐app下载地址

配置头文件名称

默认情况下,信任以下代理标题:

如果您的反向代理使用这些不同的标题名称,您可以配置,通过标题名称setTrustedHeaderName ():

1 2 3 4 5
请求::setTrustedHeaderName(请求::HEADER_FORWARDED,“X-Forwarded”);请求::setTrustedHeaderName(请求::HEADER_CLIENT_IP,“X-Proxy-For”);请求::setTrustedHeaderName(请求::HEADER_CLIENT_HOST,“X-Proxy-Host”);请求::setTrustedHeaderName(请求::HEADER_CLIENT_PORT,“X-Proxy-Port”);请求::setTrustedHeaderName(请求::HEADER_CLIENT_PROTO,“X-Proxy-Proto”);

不相信某些头文件

默认情况下,如果你的代理的IP地址白名单,然后上面列出的所有五个标题是可信的。如果你需要信任这些标题而不是其他人,你可以这样做:

1 2
/ /禁用信任”“转发”“头请求::setTrustedHeaderName(请求::HEADER_FORWARDED,);
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。