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");
相关推荐
陌路2012 小时前
Linux42 守护进程
linux
liteblue12 小时前
DEB包解包与打包笔记
linux·笔记
minji...13 小时前
Linux 基础IO(一) (C语言文件接口、系统调用文件调用接口open,write,close、文件fd)
linux·运维·服务器·网络·数据结构·c++
赖small强13 小时前
【Linux内存管理】Linux虚拟内存系统详解
linux·虚拟内存·tlb
码龄3年 审核中13 小时前
Linux record 04
linux·运维·服务器
RisunJan13 小时前
Linux命令-ftptop命令(实时监控 ProFTPD 服务器连接状态)
linux·运维·服务器
虾..13 小时前
Linux 文件描述符,重定向及缓冲区理解
linux·运维·服务器
真正的醒悟13 小时前
202503-经验之道
服务器·网络·php
fengyehongWorld13 小时前
Linux lftp命令
linux
赖small强13 小时前
【Linux C/C++开发】Linux C/C++ 堆栈溢出:原理、利用与防护深度指南
linux·c语言·c++·stack·堆栈溢出