第一,代理只会把上一级的请求的地址给加到x-forwarded-for上,如果在网关或者实际应用中,那么,需要获取下请求的源地址,这样,把其数据添加进来,才能拼凑一个完整的代理链。 第二,由于xff数据,用户是有可能伪造的,所以,如果仅仅靠xff数据来获取客户端的真实地址,是有可能被伪造,导致数据的不准确性。不能完全依赖...
先上代码 staticngx_int_tngx_http_proxy_add_x_forwarded_for_variable(ngx_http_request_t*r,ngx_http_variable_value_t*v,uintptr_tdata){size_tlen;u_char*p;ngx_table_elt_t*h,*xfwd;v->valid=1;v->no_cacheable=0;v->not_found=0;xfwd=r->headers_in.x_forwarded_for;l...
总结来说,我们需要明确理解 X-Forwarded-For 标头在代理服务器中的作用,即它记录的是代理IP而非客户端IP。在实际应用中,如果需要获取客户端的真实地址,除了依赖 X-Forwarded-For 外,还需要额外的措施。此外,我们应谨慎对待可能存在的伪造风险,并考虑潜在的代理配置不完整问题。最后,本文旨在分享这...