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");
相关推荐
九皇叔叔12 小时前
Ubuntu 22.04 版本常用设置
linux·运维·ubuntu
南境十里·墨染春水13 小时前
linux学习进展 线程同步——互斥锁
java·linux·学习
杨云龙UP14 小时前
ODA登录ODA Web管理界面时提示Password Expired的处理方法_20260423
linux·运维·服务器·数据库·oracle
郑寿昌14 小时前
IIoT本体迁移的领域扩展机制
服务器·前端·microsoft
songx_9915 小时前
Linux基础2
linux·运维·服务器
我想要SSR15 小时前
搭建小龙虾过程和坑点
linux·服务器·ai
陈皮糖..15 小时前
27 届运维实习笔记|第三、四周:从流程熟练到故障排查,企业运维实战深化
运维·笔记·sql·nginx·ci/cd·云计算·jenkins
莫白媛16 小时前
Linux在限制敏感命令下的修改用户密码小白版
linux·运维·服务器
Rcnhtin17 小时前
RocketMQ
java·linux·rocketmq
想唱rap17 小时前
UDP套接字编程
服务器·网络·c++·网络协议·ubuntu·udp