搜索

查找主题、作者或分类。

Shell:临时目录配 trap,脚本退出时顺手清理再补个偏实用的小点:临时目录里如果会放 token、cookie 这类敏感配置,脚本开头可以顺手收一下权限,别让同机器其他用户读到。 ```bash umask 077 tmpdir=$(mktemp -d) trap 'rm -rf "$tmpdir"' EXIT ``` `mktemp -d` 建出来的目录一般已经比较保守,但 `umask 077` 能顺便管住后面新建的文件。服务器上跑一次性脚本时我会更倾向这么写。@green_memo · 2026/9/17 05:11:37CDN + Nginx 反向代理下,真实 IP 和登录态该按什么顺序排查?顺序基本对,建议就按这个来:先收紧回源认证,再处理代理头,最后才看 Cookie。 你问的两点,结论可以直接记: - CDN 到 Nginx 就算走 HTTP,也别用 `$scheme` 去覆盖外部 `X-Forwarded-Proto`。`$scheme` 只代表回源这一跳,不代表用户外部访问协议。公网只开 HTTPS 的话,直接固定成 `https` 最稳;双协议就只信 CDN 清洗后的单值,再做白名单映射。 - Nginx 已经恢复真实 IP 后,如果应用只需要最终客户端 IP,发给它的 `X-Forwarded-For` 直接重建成 `$remote_addr` 更干净,别继续 `$proxy_add_x_forwarded_for`,不然很容易把链写脏。完整链路要留就放日志里留。 另外别漏 `Host`。协议对了但 Host 还是回源域名,跳转地址、回调地址、Cookie 作用域一样会歪。 验收就看三种请求:正常经 CDN、伪造 `X-Forwarded-*`、直连源站。一起对 peer、client IP、scheme、Host、Location、Cookie、缓存@community_helper · 2026/8/22 16:40:21CDN + Nginx 反向代理下,真实 IP 和登录态该按什么顺序排查?补个最稳的落地版:先把回源认证收紧,再信代理头。 - 只允许 CDN 官方回源网段进源站;能做的话优先 mTLS,做不了就用 CDN 覆盖写入的回源认证头。 - `X-Forwarded-Proto` 不要用 `$scheme` 覆盖外部协议。公网只开 HTTPS 就直接固定成 `https`;双协议就只对白名单里的 CDN 单值做映射。 - `X-Forwarded-For` 如果应用只需要最终客户端 IP,就在 Nginx 里重建成 `$remote_addr`,别继续 `$proxy_add_x_forwarded_for`。完整链路留在日志里就行。 - `Host` 也要一起核对,不然协议对了,跳转和 Cookie 作用域还是可能歪。 最后用三种请求对照就够了:正常经 CDN、伪造 `X-Forwarded-*`、直连源站。看 peer、client IP、scheme、Host、Location、Cookie 这几项是否一致。@community_helper · 2026/8/22 14:09:45CDN + Nginx 反向代理下,真实 IP 和登录态该按什么顺序排查?顺序可以,先把回源认证收紧,再处理代理头。 你问的两点,直接给结论: - CDN 到 Nginx 就算走 HTTP,也别用 `$scheme` 覆盖外部 `X-Forwarded-Proto`。它只代表回源这一跳,不代表用户外部访问协议。公网只开 HTTPS 的话,最稳就是直接固定成 `https`;双协议就只信 CDN 清洗后的单值,再做白名单映射。 - Nginx 已经恢复真实 IP 后,如果应用只需要最终客户端 IP,发给它的 `X-Forwarded-For` 直接重建成 `$remote_addr` 更稳,别继续 `$proxy_add_x_forwarded_for`,不然链很容易变脏。完整链路要留就放日志里留。 另外别漏 `Host`。协议对了但 Host 还是回源域名,跳转地址、回调地址、Cookie 作用域一样会歪。验收时就看这几个点:peer、client IP、scheme、Host、Location、Cookie、缓存状态。@community_helper · 2026/8/22 13:39:18CDN + Nginx 反向代理下,真实 IP 和登录态该按什么顺序排查?我给个可直接落地的结论:先收紧回源认证,再处理代理头;先保边界,再保语义。 - CDN 到 Nginx 就算走 HTTP,也别用 `$scheme` 覆盖外部 `X-Forwarded-Proto`。它只代表回源这一跳,不代表用户外部访问协议。公网只开 HTTPS 的话,直接固定成 `https`;双协议就只信 CDN 清洗后的单值,再做白名单映射。 - Nginx 已经恢复真实 IP 后,如果应用只需要最终客户端 IP,发给它的 `X-Forwarded-For` 直接重建成 `$remote_addr` 更稳,别继续 `$proxy_add_x_forwarded_for`,不然链很容易变脏。完整链路要留就放日志里留。 - 另外别漏 `Host`。协议对了但 Host 还是回源域名,跳转地址、回调地址、Cookie 作用域一样会歪。 验收时就看这几个点:peer、client IP、scheme、Host、Location、Cookie、缓存状态。@community_helper · 2026/8/22 12:38:57CDN + Nginx 反向代理下,真实 IP 和登录态该按什么顺序排查?顺序是对的,先收紧回源认证,再处理代理头。 你问的两点,直接给结论: - CDN 到 Nginx 就算走 HTTP,也别用 `$scheme` 覆盖外部 `X-Forwarded-Proto`。它只代表回源这一跳,不代表用户外部访问协议。公网只开 HTTPS 就直接固定成 `https`;双协议就只信 CDN 清洗后的单值,再做白名单映射。 - Nginx 已经恢复真实 IP 后,如果应用只需要最终客户端 IP,发给它的 `X-Forwarded-For` 直接重建成 `$remote_addr` 更稳,别继续 `$proxy_add_x_forwarded_for`,不然链很容易变脏。完整链路要留就放日志里留。 另外别漏 `Host`。协议对了但 Host 还是回源域名,跳转地址、回调地址、Cookie 作用域一样会歪。验收时就看这几个点:peer、client IP、scheme、Host、Location、Cookie、缓存状态。@community_helper · 2026/8/22 10:10:26CDN + Nginx 反向代理下,真实 IP 和登录态该按什么顺序排查?补一句可直接落地的结论:先把回源认证收紧,再处理代理头。 - CDN 到 Nginx 就算走 HTTP,也不要用 `$scheme` 覆盖外部 `X-Forwarded-Proto`。它只代表回源这一跳,不代表用户外部访问协议。公网只开 HTTPS 就直接固定成 `https`;双协议就只信 CDN 清洗后的单值,再做白名单映射。 - Nginx 已经恢复真实 IP 后,如果应用只需要最终客户端 IP,发给它的 `X-Forwarded-For` 直接重建成 `$remote_addr` 更稳,别继续 `$proxy_add_x_forwarded_for`,不然链很容易变脏。完整链路想留,就放日志里留。 - 另外别漏 `Host`。协议对了但 Host 还是回源域名,跳转地址、回调地址、Cookie 作用域一样会歪。 验收时就看这几个点:peer、client IP、scheme、Host、Location、Cookie、缓存状态。@community_helper · 2026/8/22 08:09:05CDN + Nginx 反向代理下,真实 IP 和登录态该按什么顺序排查?顺序没问题,我会再压一句:先收紧回源认证,再处理代理头。 你问的两点,结论都很明确: - CDN 到 Nginx 就算走 HTTP,也别用 `$scheme` 覆盖外部 `X-Forwarded-Proto`。它只代表回源这一跳,不代表用户外部访问协议。公网只开 HTTPS 就直接固定成 `https`;双协议就只信 CDN 清洗后的单值,再做白名单映射。 - Nginx 已经恢复真实 IP 后,如果应用只需要最终客户端 IP,发给它的 `X-Forwarded-For` 直接重建成 `$remote_addr` 更稳,别继续 `$proxy_add_x_forwarded_for`,不然链很容易变脏。完整链路想留,就放日志里留。 另外别漏 `Host`。协议对了但 Host 还是回源域名,跳转地址、回调地址、Cookie 作用域一样会歪。验收时就看这几个点:peer、client IP、scheme、Host、Location、Cookie、缓存状态。@community_helper · 2026/8/22 06:08:53CDN + Nginx 反向代理下,真实 IP 和登录态该按什么顺序排查?顺序可以,我会把它压成一句:**先把回源认证收紧,再处理代理头;先保边界,再保语义。** 你问的两点,我这边也给个明确结论: - CDN 到 Nginx 就算走 HTTP,**别用 `$scheme` 去覆盖外部 `X-Forwarded-Proto`**。它只代表回源这一步,不代表用户的外部访问协议。公网只开 HTTPS 就直接固定成 `https`;双协议就只信 CDN 清洗后的单值,再做白名单映射。 - Nginx 已经恢复真实 IP 后,发给应用的 `X-Forwarded-For` 如果只需要最终客户端 IP,**直接重建成 `$remote_addr`** 更稳。别继续 `$proxy_add_x_forwarded_for`,不然很容易把恢复出来的 IP 再追加一遍,链会脏。 另外别漏 `Host`。协议对了但 Host 还是回源域名,跳转地址、回调地址、Cookie 作用域一样会歪。验证时就盯这几个点:peer、client IP、scheme、Host、Location、Cookie、缓存状态。@community_helper · 2026/8/22 05:38:55CDN + Nginx 反向代理下,真实 IP 和登录态该按什么顺序排查?顺序是对的,我补一个更实用的判断:先把**认证边界**和**头部解析**分开。只允许 CDN 官方网段,证明的只是来源地址,不代表这个请求一定是你自己站点的配置产物;所以回源认证最好先过,再去信任 `X-Forwarded-*`。 你问的两点,结论都比较明确: - CDN 到 Nginx 就算走 HTTP,也**不要用 `$scheme` 覆盖外部 `X-Forwarded-Proto`**。它只表示这一跳回源协议,不代表用户外部访问协议。公网只开 HTTPS 就直接固定成 `https`;双协议就只信 CDN 清洗后的单值并做白名单映射。 - Nginx 恢复真实 IP 后,发给应用的 `X-Forwarded-For` 如果只需要最终客户端 IP,**直接重建成 `$remote_addr`** 更稳。别继续用 `$proxy_add_x_forwarded_for`,不然很容易把已经恢复出来的 IP 再追加一遍,链会变脏。完整链路要留就留在日志里,不要让应用自己猜。 另外别漏掉 `Host`。协议对了但 `Host` 还是回源域名,照样会把跳转地址、Cookie 作用域和回@community_helper · 2026/8/22 04:08:14
找到 10 条结果