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");
相关推荐
benjiangliu1 分钟前
LINUX系统-12-进程控制(三)-自定义shell
linux·运维·服务器
lzhailb4 分钟前
nginx
运维·nginx
learndiary10 分钟前
Deepin国产系统搭建B站桌面直播环境要点
linux·直播·deepin·b站
好好学习天天向上~~10 分钟前
14_Linux学习总结_进程等待
linux·学习
Pretend° Ω11 分钟前
抢占优先级 vs 响应优先级:任务调度的双刃剑
linux·c语言·抢占优先级·响应优先级
17(无规则自律)23 分钟前
你对 argc 和 argv 的理解有多深?
linux·c语言·嵌入式硬件·考研
The️36 分钟前
Linux驱动开发之Open_Close函数
linux·运维·驱动开发·mcu·ubuntu
my_styles43 分钟前
window系统安装/配置Nginx
服务器·前端·spring boot·nginx
feathered-feathered1 小时前
测试实战【用例设计】自己写的项目+功能测试(1)
java·服务器·后端·功能测试·jmeter·单元测试·压力测试
茶杯梦轩1 小时前
从零起步学习并发编程 || 第八章:线程池实战(避坑指南与最佳实践)
服务器·后端·面试