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");
相关推荐
trayvontang8 分钟前
Nginx之location配置
运维·nginx
hkhkhkhkh12344 分钟前
Linux设备节点基础知识
linux·服务器·驱动开发
HZero.chen2 小时前
Linux字符串处理
linux·string
张童瑶2 小时前
Linux SSH隧道代理转发及多层转发
linux·运维·ssh
汪汪队立大功1232 小时前
什么是SELinux
linux
石小千2 小时前
Linux安装OpenProject
linux·运维
柏木乃一2 小时前
进程(2)进程概念与基本操作
linux·服务器·开发语言·性能优化·shell·进程
Lime-30902 小时前
制作Ubuntu 24.04-GPU服务器测试系统盘
linux·运维·ubuntu
代码or搬砖2 小时前
Nginx详讲
运维·nginx·dubbo
CloudJourney3 小时前
从Unix到OpenEuler及其关键协议解析
服务器·unix