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");
相关推荐
陈陈CHENCHEN7 小时前
【Linux】服务器根目录磁盘扩容操作记录
linux·运维·服务器
GeW8 小时前
RHCE快速拿证全攻略:考点拆解+实验强化+时间规划,一次通关
linux
沸速存储9 小时前
AI 机器人靠哪些内存与存储驱动整机运行?
服务器·科技·嵌入式硬件·电脑
码农小韩9 小时前
Linux应用开发(八)——TCP/IP网络编程基础
linux·嵌入式软件开发·linux操作系统·嵌入式操作系统·linux网络编程·linux应用
迷途之人不知返10 小时前
【进程】-5-进程优先级
linux
fengyehongWorld10 小时前
Linux squid搭建基础代理服务器
linux·运维·服务器
木白CPP10 小时前
Linux DMA驱动详解(二)-----DMA的使用者
java·linux·运维
迷茫的大专生11 小时前
高可用总结
redis·mysql·nginx·高可用
赵民勇11 小时前
systemd-socket-activate命令详解
linux·运维
Cx330❀11 小时前
【Linux网络】网络层 IP 协议:从网段划分到内核源码解析
大数据·linux·服务器·网络·tcp/ip·性能优化·langchain