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");
相关推荐
燃于AC之乐1 小时前
【Linux系统编程】进程调度解析:优先级与O(1)调度算法
linux·操作系统·进程调度·进程优先级·调度算法
Nick.Q9 小时前
vim插件的管理与离线安装
linux·编辑器·vim
代码的奴隶(艾伦·耶格尔)11 小时前
Nginx
java·服务器·nginx
头发还没掉光光11 小时前
HTTP协议从基础到实战全解析
linux·服务器·网络·c++·网络协议·http
液态不合群11 小时前
Nginx多服务静态资源路径冲突解决方案
运维·nginx
小白同学_C11 小时前
Lab2-system calls && MIT6.1810操作系统工程【持续更新】
linux·c/c++·操作系统os
物理与数学11 小时前
linux内核 struct super_block
linux·linux内核
Getgit11 小时前
Linux 下查看 DNS 配置信息的常用命令详解
linux·运维·服务器·面试·maven
zhangrelay12 小时前
Linux(ubuntu)如何锁定cpu频率工作在最低能耗模式下
linux·笔记·学习
_OP_CHEN13 小时前
【Linux系统编程】(二十)揭秘 Linux 文件描述符:从底层原理到实战应用,一篇吃透 fd 本质!
linux·后端·操作系统·c/c++·重定向·文件描述符·linux文件