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");
相关推荐
Rockbean44 分钟前
用40行代码搭建自己的无服务器OCR
服务器·python·deepseek
茶杯梦轩4 小时前
CompletableFuture 在 项目实战 中 创建异步任务 的核心优势及使用场景
服务器·后端·面试
崔小汤呀5 小时前
最全的docker安装笔记,包含CentOS和Ubuntu
linux·后端
何中应5 小时前
vi编辑器使用
linux·后端·操作系统
何中应5 小时前
Linux进程无法被kill
linux·后端·操作系统
何中应5 小时前
rm-rf /命令操作介绍
linux·后端·操作系统
何中应5 小时前
Nginx转发请求错误
前端·后端·nginx
何中应5 小时前
Linux常用命令
linux·操作系统
葛立国5 小时前
从 / 和 /dev 说起:Linux 文件系统与挂载点一文理清
linux