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");
相关推荐
晚枫歌F3 小时前
Dpdk介绍
linux·服务器
风送雨4 小时前
FastMCP 2.0 服务端开发教学文档(下)
服务器·前端·网络·人工智能·python·ai
model20055 小时前
alibaba linux3 系统盘网站迁移数据盘
java·服务器·前端
yuhaiqun19895 小时前
学服务器训练AI模型:5步路径助力高效入门
运维·服务器·人工智能·笔记·机器学习·ai
阿杰 AJie6 小时前
主流传输 /通信协议的【使用场景 + 详细使用说明】大全
服务器·tcp/ip
工程师老罗6 小时前
龙芯2k0300 PMON取消Linux自启动
linux·运维·服务器
千百元6 小时前
centos如何删除恶心定时任务
linux·运维·centos
skywalk81636 小时前
网站证书自动续订失败的问题解决,原来是续订指令certbot renew出错,导致crontab定时任务续订失败
运维·服务器·证书·certbot
额呃呃6 小时前
游戏服务器和一般高性能服务器的区别
运维·服务器·游戏
liwulin05067 小时前
【JAVA】创建一个不需要依赖的websocket服务器接收音频文件
java·服务器·websocket