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");
相关推荐
wdfk_prog13 分钟前
[Linux]学习笔记系列 -- [kernel]sysctl
linux·笔记·学习
Xiaomostream19 分钟前
实现TCP服务器:一请求一线程 | epoll
服务器·网络协议·tcp/ip
CS_浮鱼25 分钟前
【Linux】进程信号
linux·运维·服务器
wanhengidc37 分钟前
云手机的出现意味着什么
运维·服务器·web安全·智能手机·云计算
wanhengidc42 分钟前
云手机的硬件技术
运维·服务器·web安全·游戏·智能手机
Thexhy43 分钟前
CentOS快速安装DockerCE指南
linux·docker
路人甲ing..1 小时前
Android Studio 快速的制作一个可以在 手机上跑的app
android·java·linux·智能手机·android studio
拾忆,想起2 小时前
Dubbo超时问题排查与调优指南:从根因到解决方案
服务器·开发语言·网络·微服务·架构·php·dubbo
code monkey.2 小时前
【Linux之旅】深入 Linux Ext 系列文件系统:从磁盘物理结构到软硬链接的底层逻辑
linux·文件系统·ext2
工具人55553 小时前
复制cmd窗口所有文字快捷方式
服务器