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");
相关推荐
tudoSearcher6 小时前
日志、指标、链路追踪:可观测性三支柱深度解析
运维·服务器·网络·prometheus
xier_ran6 小时前
【infra之路】Linux基础命令与系统排查
linux·运维·服务器
zh路西法6 小时前
【Linux 串口通信】基于 C++ 多线程的同步/异步串口实现
linux·运维·c++·python
c238566 小时前
linux基础2
linux·运维·服务器
子兮曰6 小时前
WSL 配 GPU 用 Docker 的折腾指南(2026 年版)
linux·前端·后端
vortex56 小时前
Linux 默认 SUID 可执行文件详解
linux·运维
2023自学中6 小时前
Linux虚拟机 CMakeLists.txt:x86 与 ARM 双架构编译脚本
linux·c语言·c++·嵌入式
土星云SaturnCloud7 小时前
从云端到边缘:基于土星云SE110S的智能视频分析轻量化部署方案(上)
服务器·人工智能·ai·边缘计算
爱就是恒久忍耐7 小时前
老Ubuntu安装podman 5.x版本
linux·ubuntu·podman
梦想的颜色7 小时前
MySQL 查询性能核武器
运维·服务器·数据结构·数据库·mysql