Nginx 防止IP伪造,绕过IP限制

背景介绍

在使用Nginx时,需要将IP地址转发到后置应用中,往往需要增加配置

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

在后端程序通过读取请求头里的X-Forwarded-For来获取用户客户端IP。

java 复制代码
public String getRemortIP(HttpServletRequest request) { 
  if (request.getHeader("x-forwarded-for") == null) { 
    return request.getRemoteAddr(); 
  } 
  return request.getHeader("x-forwarded-for"); 
}

但是,这个X-Forwarded-For可以通过修改报文来伪造IP。

解决办法

Nginx中增加配置

proxy_set_header X-Real-IP $remote_addr; #让WEB取得原始请求IP

代码中取客户端IP

java 复制代码
String clientIp = request.getHeader("X-Real-IP");
相关推荐
偶像你挑的噻14 小时前
9-Linux驱动开发-设备树=>设备树插件实现 RGB 灯驱动
linux·驱动开发·stm32·嵌入式硬件
叫致寒吧14 小时前
Nginx基于域名的虚拟主机实操案例
运维·服务器·nginx
韩师学子--小倪14 小时前
tcpdump + Wireshark:抓取nginx转发到服务的流量
测试工具·nginx·tcpdump
梁正雄15 小时前
linux服务-Nginx+Tomcat+Redis之Session 共享 - 容器compose
linux·nginx·tomcat
咕噜签名-铁蛋15 小时前
云服务器与物理服务器、VPS的区别
运维·服务器
恒创科技HK15 小时前
香港服务器流量有限制和带宽有限制区别在哪?
运维·服务器·网络
fengyehongWorld15 小时前
Linux rsync命令
linux
wanhengidc15 小时前
机架式服务器有什么作用?
运维·服务器·web安全·智能手机·云计算
干啥都是小小白16 小时前
Linux C编程
linux·运维·服务器
赖small强16 小时前
【Linux 网络基础】WebSockets 技术指南
linux·网络·https·websockets·ping/pong