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");
相关推荐
龙仔7251 分钟前
在麒麟V10服务器安全加固,sshd防暴力破解加固,实现“密码错误3次封IP”的需求
服务器·tcp/ip·安全
unfeeling_4 分钟前
Keepalived实验
linux·服务器·网络
天蓝不会忘记0215 分钟前
lvs,haproxy,keepalived,nginx,tomcat介绍和实验
nginx·tomcat·lvs
山峰哥15 分钟前
吃透 SQL 优化:告别慢查询,解锁数据库高性能
服务器·数据库·sql·oracle·性能优化·编辑器
Web极客码24 分钟前
解决WordPress后台“外观”菜单消失
linux·服务器·wordpress
熬夜有啥好26 分钟前
Linux软件编程——综合小练习
linux·算法·目录遍历·fgets·strcpy·linux内核与用户交互·strtok
qizhideyu27 分钟前
LVS(Linux virual server)
linux·运维·lvs
xiaoliuliu1234540 分钟前
CentOS 7 安装 gcc-4.8.5-44.el7.x86_64.rpm 详细步骤(含依赖解决)
linux·运维·centos
白太岁1 小时前
通信:(5) 电路交换、报文交换与分组交换
运维·服务器·网络·网络协议
青桔柠薯片1 小时前
Linux软件编程:线程和进程间通信
linux·开发语言·线程·进程