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");
相关推荐
Ares-Wang4 小时前
Linux》》systemd 、service、systemctl daemon-reload、systemctl restart docker
linux·运维·docker
安审若无6 小时前
运维知识框架
运维·服务器
阿拉斯攀登6 小时前
从入门到实战:CMake 与 Android JNI/NDK 开发全解析
android·linux·c++·yolo·cmake
Arvin6279 小时前
Nginx 添加账号密码访问验证
运维·服务器·nginx
风曦Kisaki9 小时前
# Linux 磁盘查看命令详解:df 与 du
linux·运维·网络
路溪非溪9 小时前
Linux中gpio子系统的现代接口
linux·arm开发·驱动开发
内心的一片海10 小时前
服务器内存异常占用
运维·服务器
文静小土豆10 小时前
Centos7负载异常过高排查思路(Load Average)
linux
Deitymoon10 小时前
linux——原子操作
linux
liulilittle11 小时前
C++ 无锁编程:单停多发送场景高性能方案
服务器·开发语言·c++·高性能·无锁·原子