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");
相关推荐
hxhy0010 小时前
服务器挖矿排查与清理
运维·服务器
lightqjx10 小时前
VS Code连接Linux远端服务器的方法
linux·服务器·vs code
琥珀色糖11 小时前
Linux GDB调试
linux·运维·服务器·gdb·调试
NGINX开源社区11 小时前
NGINX Ingress Controller 5.5:安全性与性能提升,迁移更轻松
java·服务器·nginx
weixin_3077791311 小时前
PHP 大文件上传:内存占用、超时与最佳实践
linux·服务器·开发语言·nginx·php
国际云,接待11 小时前
云服务器 SSH 被扫爆了怎么办:安全组、密钥登录与 Fail2ban 的完整加固清单
服务器·安全·ssh
闲云野鹤在人间11 小时前
项目实战:LNMP-电商平台-ECshop
linux·运维·nginx·apache·lvs
吹什么轩12 小时前
linux网络:UDP套接字的业务实现:字典
linux·运维·udp
迷途之人不知返12 小时前
gcc编译器,以及源文件的翻译
linux
啊啊啊啊啊!!!!12 小时前
【Linux】初始Linux操作系统
linux·运维·服务器