Tag

#http

包含这个标签的文章。

安全 13 阅读

API 密钥泄漏后如何无停机处置:双密钥轮换、审计与最小权限实践

## 适用场景 代码仓库、CI 日志、工单截图或聊天记录中出现了生产 API 密钥。密钥仍在被多个服务使用,直接禁用可能造成业务中断,但继续保留又会扩大攻击窗口。 本文面向服务到服务调用的静态 API 密钥,给出一套可执行的处置流程:先确认影响范围并限制风险,再创建权限更小的新密钥,通过短暂的双密钥窗口迁移调用方,

阅读全文
云原生 76 阅读

Kubernetes 滚动发布偶发 502:从终止竞态到连接排空的治理实践

## 适用场景 本文适用于通过 Kubernetes Deployment 滚动发布的 HTTP 服务。系统平时运行正常,但每次发布、缩容或节点驱逐时都会出现少量 502、连接重置或上游提前关闭;错误只持续几秒,Pod 日志里又看不到明显异常。 这类问题通常不是新版本启动失败,而是旧 Pod 的进程退出、Endpo

阅读全文
开发 120 阅读

TypeScript 请求已超时却仍占用连接:用 AbortController 建立可取消的重试边界

## 适用场景 本文适用于 Node.js 20.3 及以上版本使用原生 `fetch` 调用内部 API、第三方服务或网关的 TypeScript 项目。示例使用该版本提供的 `AbortSignal.any()`;更早版本可以用等价的信号组合函数替代。典型现象是:业务层已经返回“请求超时”,但下游仍持续收到请求;

阅读全文
安全 193 阅读

JWT 密钥轮换后批量 401:用 kid 双钥并行实现无感切换与可回滚发布

## 适用场景 业务使用 RS256 JWT 在网关、API 服务和后台任务之间传递身份。为了满足密钥泄露应急、合规轮换或证书到期要求,需要定期替换签名私钥,但又不能让尚未过期的旧令牌突然失效。 本文给出一套可直接落地的轮换方法:令牌头携带 `kid`,验证端同时信任新旧公钥,签发端再切换当前私钥,最后根据令牌最长

阅读全文
开发 278 阅读

Go HTTP 调用超时后吞吐下降:从取消传播到连接复用的治理实践

## 适用场景 本文适用于 Go 服务通过 `net/http` 调用内部 API、第三方接口或对象存储的场景。典型现象是:下游偶发变慢后,请求大量超时;下游恢复后,调用方吞吐仍然偏低;连接数、TIME_WAIT 或新建 TLS 连接数明显上升;日志只看到 `context deadline exceeded`,却无

阅读全文
安全 293 阅读

Webhook 验签通过仍被重复扣款:HMAC 签名与重放攻击防护实践

## 适用场景 支付、订单、代码托管或消息平台通过 Webhook 主动回调业务系统。接口已经校验 HMAC 签名,但偶尔仍出现同一事件被重复执行,甚至攻击者截获一条合法请求后,可以在数小时后原样重放。 本文以 Python 3.11、FastAPI 和 Redis 为例,实现一套可直接落地的接收端:对原始请求体进

阅读全文
系统运维 307 阅读

Nginx 大文件上传返回 413:从限制链路定位到安全放行的排查实践

## 适用场景 业务通过 Nginx 上传图片、安装包、备份文件或导入数据时,小文件正常,大文件刚提交便收到 `413 Request Entity Too Large`。应用日志没有请求记录,客户端通常只看到一个 Nginx 错误页。 本文以“上传 80 MB 压缩包失败、10 MB 图片正常”为例,说明怎样确认

阅读全文
系统运维 346 阅读

Nginx 反向代理后客户端 IP 全变内网地址:从 realip 配置到防伪造的排查实践

## 适用场景 业务服务部署在负载均衡、CDN、Kubernetes Ingress 或四层代理之后。应用日志中的 `remote_addr` 全是代理的内网地址,限流、风控和审计都无法识别真实访问者;更危险的是,直接信任请求携带的 `X-Forwarded-For`,会让攻击者伪造来源 IP 绕过白名单。 本文以

阅读全文
网络 333 阅读

DNS 记录已变更但业务仍访问旧地址:从缓存链路到灰度切换的排查实践

## 适用场景 线上服务切换负载均衡、迁移 API 网关或故障切流后,权威 DNS 已显示新 IP,但仍有一部分客户端持续访问旧地址。常见表现包括:请求间歇超时、少量用户仍命中已下线机房、发布后错误率在一个较长窗口内缓慢回落。 本文以 `api.example.com` 从 `203.0.113.10` 切换到 `

阅读全文