服务端记录请求IP
服务端记录请求者IP的几种方案:
背景:
-
需求1——审计日志需要真实IP:
安全审计要求记录访问服务的最终用户或设备的真实来源IP地址。这对于追踪恶意活动、排查问题、满足合规性要求至关重要。 -
需求2——风控需要真正IP:
一些活动、风险管理都是需要对客户的真实IP进行筛选甄别。
解决方案介绍:
| 方案 | 说明 |
|---|---|
| 通过HTTP头记录(主要是X-Forwarded-For) | 代理服务器(如Nginx)在转发HTTP请求时,通过 X-Forwarded-For 头部记录客户端的IP地址。缺点:HTTP头是应用层数据,在传输过程中极易被篡改或伪造。攻击者可以随意构造。 |
| Proxy Protocol 协议 | 代理服务器在建立TCP连接后、发送应用层数据(如HTTP请求)之前,先发送一个特殊的、纯文本的协议头部。安全性更高:信息在连接建立之初传递,不依赖于可能被篡改的应用层头,更难伪造。 |
| 加密 TCP Option | 利用TCP协议头中的“选项(Options)”字段,将客户端的原始连接信息以加密形式嵌入其中。 高安全性:由于信息被加密且位于TCP选项字段,非常隐蔽,难以被中间设备篡改或窃听。 |
如果在多代理链场景下,是否会丢失之前的记录,完全取决于每一层代理的配置方式。
这个场景下的策略:
| 策略层级 | 具体做法 | 核心目的 |
|---|---|---|
| 后端代码 | 实现“从右向左取第一个非信任IP”的解析逻辑 | 防御:避免被伪造的头部欺骗 |
| 内部网络 | 在可控的边界入口重置 X-Forwarded-For 头 |
清洗:丢弃不可信区域的所有IP信息,建立自己的可信记录起点 |
| 业务层面 | 结合会话、设备指纹等多因素辅助安全审计 | 补充:在IP不可靠时,作为身份验证和风控的备选 |
浙公网安备 33010602011771号