伪造

客户端的IP地址伪造、CDN、反向代理、获取的那些事儿

霸气de小男生 提交于 2020-01-08 10:21:06
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 20120917 @郑昀 汇总 外界流传的JAVA/PHP服务器端获取客户端IP都是这么取的: 伪代码: 1)ip = request.getHeader(" X-FORWARDED-FOR ") 可伪造,参考附录A 2)如果该值为空或数组长度为0或等于 " unknown " ,那么: ip = request.getHeader(" Proxy-Client-IP ") 3)如果该值 为空 或数组长度为0 或等于 " unknown " ,那么: ip = request.getHeader(" WL-Proxy-Client-IP ") 4)如果该值 为空 或数组长度为0 或等于 " unknown " ,那么: ip = request.getHeader(" HTTP_CLIENT_IP ") 可伪造 5)如果该值为空 或数组长度为0 或等于"unknown " ,那么: ip = request. getRemoteAddr () 可对于匿名代理服务器,可隐匿原始ip,参考附录B 之所以搞这么麻烦,是因为存在很多种网络结构,如 Nginx+Resin、Apache+WebLogic、Squid+Nginx。下面挨个儿讲一下。 郑昀 :△ 首先,明确一下,Nginx 配置一般如下所示: