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");
相关推荐
balalawb3 分钟前
docker构建镜像并上传到服务器
服务器·docker
LaoWaiHang3 分钟前
Linux操作环境的获得
linux
leo_2327 分钟前
从开发语言角度来谈谈SMP(下)--SMP(软件制作平台)语言基础知识之十三
linux·运维·开发语言·开发工具·smp(软件制作平台)·应用系统
小林有点嵌7 分钟前
UML之活动图学习
服务器·学习·uml
Lynnxiaowen9 分钟前
今天我们继续DevOps内容Jenkins自动化部署PHP项目
linux·自动化·jenkins·php·devops
咕噜企业分发小米11 分钟前
Linux嵌入式系统在智能家居中的具体应用案例有哪些?能否详细介绍其技术实现?
linux·运维·智能家居
为自己_带盐13 分钟前
记一次“丝滑”的服务器迁移
运维·服务器
篙芷14 分钟前
k8s节点绑定:nodeName与nodeSelector实战
linux·docker·kubernetes
ん贤15 分钟前
io.copy
运维·服务器·网络·io.copy
默|笙15 分钟前
【Linux】进程控制(2)进程等待
linux·运维·服务器