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");
相关推荐
of Watermelon League2 分钟前
SQL server配置ODBC数据源(本地和服务器)
运维·服务器·github
HalvmånEver7 分钟前
MySQL的数据类型(二)
linux·学习·mysql
xuxie997 分钟前
N27 数据库UI
linux·c#
Run_Teenage9 分钟前
Linux:理解中断
linux·运维·服务器
北山有鸟12 分钟前
解析 Linux 内核驱动中的“换行美学”
linux·运维·服务器
Run_Teenage14 分钟前
Linux:信号保存与捕捉
运维·服务器
水冗水孚16 分钟前
以Vultr供应商的VPS为例、十分钟自建一个自己的VPN(图文并茂)
运维·服务器
巨大八爪鱼18 分钟前
【方法】Tomcat网站添加用户名密码弹窗认证
运维·服务器·tomcat·jsp·mod_jk
unDl IONA20 分钟前
Linux安装RabbitMQ
linux·运维·rabbitmq
米高梅狮子21 分钟前
Ubuntu和Containerd
linux·运维·ubuntu