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");
相关推荐
Sleepy MargulisItG1 小时前
Linux 权限基本理解
linux
_F_y1 小时前
Linux:自主shell编写
linux
gaize12131 小时前
服务器异常如何解决
运维·服务器
编程饭碗2 小时前
【Java循环】
java·服务器·算法
dragoooon342 小时前
仿muduo库实现高并发服务器-面试常见问题
运维·服务器·面试
Empty_7773 小时前
K8S-Job & Cronjob
java·linux·docker·容器·kubernetes
Molesidy3 小时前
【Linux】【Imx6ull Pro】基于Imx6ull Pro开发板的Linux-C-C++编程记录
linux·嵌入式·嵌入式linux应用层
北京盛世宏博3 小时前
边缘计算赋能!机房机柜微环境温湿度快速响应控制方案
运维·服务器·网络
赖small强4 小时前
【Linux 内存管理】Linux系统中CPU访问内存的完整机制深度解析
linux·缓存·tlb·内存访问·page table
油丶酸萝卜别吃4 小时前
堡垒机的集中管控具体体现在哪些方面?
服务器