在Tomcat中使用RemoteIpValve时如何防止请求IP替换?

时间:2018-12-11 10:29:58

标签: java tomcat

我想在RemoteIpValve网络服务器中使用tomcat8

问题:结果,request.remoteAddr(之前是127.0.0.1)已使用外部呼叫ip更新。因此,RemoteAddrValve拒绝了它,好像发生了外部直接访问一样。

问题:我如何仍将“真实的”外部IP转发给tomcat,让tomcat仅接受本地请求,还使用RemoteIpValve

Tomcat已配置为仅允许通过前面的apache2 proxy进行本地访问:

context.xml

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1"/>

由于我仍然想读取实际请求,例如,如果它是http或https请求等,我将转发apache2中的这些字段,并使用以下命令在server.xml中的tomcat中启用评估:

<Valve className="org.apache.catalina.valves.RemoteIpValve" remoteIpHeader="X-Forwarded-For" protocolHeader="X-Forwarded-Proto" /> 

因此,本地主机请求之外的任何内容都将被403 forbidden拒绝。这是因为tomcat替换了呼叫者的真实IP,而RemoteAddrValve当然拒绝了。 我该如何预防?

0 个答案:

没有答案