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");
相关推荐
QT 小鲜肉4 分钟前
【Linux命令大全】002.文件传输之lpd命令(实操篇)
linux·运维·服务器·网络·chrome·笔记
..过云雨7 分钟前
TCP/IP网络传输的基本要素剖析
linux·网络·网络协议·tcp/ip
一个平凡而乐于分享的小比特28 分钟前
Ubuntu下TFTP与FTP服务详解
linux·ubuntu·ftp·tftp
haluhalu.30 分钟前
Linux--System V 共享内存完全指南:从原理到实践
linux·运维·服务器
oMcLin30 分钟前
如何在Debian 11服务器上部署并优化高性能Elasticsearch集群,处理PB级数据?
服务器·elasticsearch·debian
prettyxian32 分钟前
【linux】深入Linux进程调度:运行、睡眠、僵尸与不可杀死的D状态
linux·服务器
想唱rap35 分钟前
缓冲区的理解和实现
java·服务器·前端·c++·python
pps-key39 分钟前
Nmap 完整教学与 Linux 指令详解
linux·计算机网络·安全·web安全·网络安全·系统安全·网络攻击模型
QT 小鲜肉40 分钟前
【Linux命令大全】002.文件传输之uustat命令(实操篇)
linux·运维·服务器·笔记·github