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");
相关推荐
长沙红胖子Qt2 分钟前
公司禅道笔记(一):公网服务器centos6上成功部署禅道20.8版本
服务器·禅道·研发管理·禅道云端部署
adnyting37 分钟前
【Linux日新月异(六)】CentOS 7网络命令深度解析:从传统到现代网络管理
linux·网络·centos
java_logo1 小时前
MONGO-EXPRESS Docker 容器化部署指南
linux·运维·mongodb·docker·容器·express
Hi202402171 小时前
Ubuntu 主机序列号克隆指南:原理与实现
linux·运维·ubuntu
如果是君1 小时前
ubuntu20.04下使用D435i实时运行ORB-SLAM3
linux·ubuntu·orb-slam3·d435i
wsig1 小时前
linux下SO文件编译指定其他依赖库的路径
linux·运维·服务器
想唱rap2 小时前
Linux下进程的状态和优先级
linux·运维·服务器·开发语言·数据结构·算法
稚辉君.MCA_P8_Java2 小时前
Sqoop 实现的功能是什么
java·服务器·架构·kubernetes·sqoop
adnyting2 小时前
【Linux日新月异(八)】CentOS 7系统资源监控与排查深度指南:性能调优全景图
linux·运维·centos
HIT_Weston2 小时前
32、【Ubuntu】【远程开发】内网穿透:远程主机连接
linux·运维·ubuntu