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");
相关推荐
爱敲代码的边芙14 分钟前
Linux:信号的保存[2]
linux·运维·服务器
葛小白116 分钟前
第五天 Labview数据记录(5.1 INI配置文件读写)
服务器·labview
工程师焱记27 分钟前
Linux 常用命令——系统设置篇(保姆级说明)
linux·运维·服务器
某风吾起1 小时前
linux系统中的 scp的使用方法
linux·服务器·网络
『往事』&白驹过隙;1 小时前
操作系统(Linux Kernel 0.11&Linux Kernel 0.12)解读整理——内核初始化(main & init)之缓冲区的管理
linux·c语言·数据结构·物联网·操作系统
chian-ocean1 小时前
探索Linux中的进程控制:从启动到退出的背后原理
linux·运维·服务器
涛ing1 小时前
23. C语言 文件操作详解
java·linux·c语言·开发语言·c++·vscode·vim
阿猿收手吧!1 小时前
【Linux网络总结】字节序转换 收发信息 TCP握手挥手 多路转接
linux·服务器·网络·c++·tcp/ip
华纳云IDC服务商1 小时前
常见的备份服务器操作系统如何选择
运维·服务器
m0_748233641 小时前
【PHP】部署和发布PHP网站到IIS服务器
android·服务器·php