反向代理后的客户端 IP 别直接信:建立可信代理边界

反向代理与客户端 IP 信任链

限流、审计和地域判断经常依赖客户端 IP,但应用部署到 CDN、负载均衡器或网关之后,套接字看到的通常只是上一跳代理。直接取 X-Forwarded-For 的最左值看似解决了问题,却可能把攻击者自己填写的地址当成事实。真正可靠的做法不是“找一个请求头”,而是先划出可信代理边界。

Read More

程序崩溃别只重启:用 Core Dump 与 GDB 保全 Linux 现场

Linux Core Dump 崩溃诊断

线上进程收到 SIGSEGV 后退出,日志往往只留下“Segmentation fault”。立即重启能恢复服务,却也抹掉了最有价值的寄存器、调用栈与线程状态。Core Dump 是进程崩溃时的内存快照;把它与原始可执行文件、调试符号配对,就能从“它挂了”推进到“哪个线程、哪一行、哪个参数导致了崩溃”。

Read More

API 报错别只返回一句话:设计稳定、可诊断的错误响应

客户端、API 网关与服务共同处理错误响应

接口成功时,调用方关心数据;接口失败时,它还要决定提示用户、修正参数、重新登录还是稍后重试。如果服务有时返回字符串、有时返回 HTML、有时把所有失败都塞进 200,每个消费者只能靠猜。错误响应同样是公开契约,应当稳定、可解析,也能帮助值班人员快速定位请求。

Read More

分布式定时任务别重复跑:租约、围栏令牌与幂等收口

分布式定时任务协调示意

单机上的 cron 很直接:时间到了就执行。但服务扩成多个副本后,每个实例都会在同一分钟醒来;日报被发三次、账单被结算三次,往往不是“锁没加好”,而是没有先界定谁有资格执行、资格失效后旧执行者还能不能写入。可靠的方案要同时处理抢占、失联和重复副作用。

Read More