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");
相关推荐
郝学胜-神的一滴3 分钟前
Effective Python 第52条:用subprocess模块优雅管理子进程
linux·服务器·开发语言·python
晨枫阳19 分钟前
不同语言数组详解
linux·服务器·windows
q***75181 小时前
Linux(CentOS)安装 MySQL
linux·mysql·centos
CS_浮鱼2 小时前
【Linux】线程
linux·c++·算法
q***13344 小时前
Linux(CentOS)安装 Nginx
linux·nginx·centos
摘星编程4 小时前
openGauss 快速上手:CentOS 环境下单机部署完整指南
linux·运维·centos
哈里谢顿9 小时前
使用kvm创建一台虚拟机
linux
大喵桑丶9 小时前
中间件快速部署(Nginx,Keepalived)
运维·nginx·中间件
hanyi_qwe10 小时前
文本三剑客--awk
linux·运维·服务器
liu****10 小时前
27.epoll(三)
服务器·开发语言·网络·tcp/ip·udp