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");
相关推荐
Terrence Shen2 分钟前
Claude Code Harness 源码学习讲义
linux·学习·ubuntu
赵药师20 分钟前
dpkg: warning: files list file for package ‘libselinux1:amd64‘ missing;
linux·运维·服务器
zt1985q21 分钟前
本地部署开源内容管理系统 Typemill 并实现外部访问
运维·服务器·开源
ElevenS_it18832 分钟前
网络没完全断但业务已经受影响:「灰色故障」排查的完整方法论
运维·服务器·网络
STDD33 分钟前
Samba 文件共享:Linux 服务器与 Windows/Mac 共享文件夹
linux·服务器·windows
liudanzhengxi1 小时前
CRM系统技术文章
linux·服务器·网络·人工智能·新人首发
南境十里·墨染春水1 小时前
守护进程编程流程
linux·学习
STDD1 小时前
Teeworlds / DDNet 服务器搭建:经典 2D 竞技平台游戏
服务器·游戏·github
eggrall2 小时前
Linux进程信号——像收快递一样理解 Linux 信号
linux·开发语言·c++
灰色人生qwer2 小时前
Python 规则:带默认值的参数必须放在不带默认值的后面
linux·windows·python