workers
workers copied to clipboard
为啥会传客户端IP呢
怎么联系呢,proxy,那个 CF 禁止国内 IP 访问了,我自架的,代理后一样屏蔽,为啥代理还用客户端 IP,怎样能不传客户端 IP 呢
什么意思
https://cors.eu.org/https://img.if101.tv/ximgs/a28cd049a029534140eddf0186bc13886659e493a8ca5615cc8d2413487fe6f64085b87f365a093c7be9abae3b0ed314.jpg
你看这张图片,我开SS就能访问,不开就不能访问,因为它屏蔽了国内访问,我想表达,为什么程序会把客户端的IP传进去呢
在 /cors/index.js#L64 这个地方处理头部信息传递,在 67 行可以添加不需要传递的 key
问题是咱根本不知道它传了什么,根据什么来检测的撒
65 行是所有头部信息集合,可以本地跑测试打印集合,里面哪些项包含 IP 内容就屏蔽这项的传递
65 行是所有头部信息集合,可以本地跑测试打印集合,里面哪些项包含 IP 内容就屏蔽这项的传递
我把所有的头都去掉了,依然屏蔽,神奇啊
会不会是其它地方,下面这个是 nodejs 环境能获取的客户端 IP,你可参考一下,调试看其它对象有不有隐藏的
let clientip = req.headers['x-forwarded-for'] || // 判断是否有反向代理 IP
req.connection.remoteAddress || // 判断 connection 的远程 IP
req.socket.remoteAddress || // 判断后端的 socket 的 IP
req.connection.socket.remoteAddress;
还有一种可能就是 CF Workers 层面处理了客户端 IP 的传递,所以无论怎么努力都是徒劳
另外,我用 https://github.com/netnr/proxy 部署到 heroku 的 nodejs 版本测试链接正常 https://netnr-proxy.herokuapp.com/https://img.if101.tv/ximgs/a28cd049a029534140eddf0186bc13886659e493a8ca5615cc8d2413487fe6f64085b87f365a093c7be9abae3b0ed314.jpg
会不会是其它地方,下面这个是 nodejs 环境能获取的客户端 IP,你可参考一下,调试看其它对象有不有隐藏的
let clientip = req.headers['x-forwarded-for'] || // 判断是否有反向代理 IP req.connection.remoteAddress || // 判断 connection 的远程 IP req.socket.remoteAddress || // 判断后端的 socket 的 IP req.connection.socket.remoteAddress;
还有一种可能就是 CF Workers 层面处理了客户端 IP 的传递,所以无论怎么努力都是徒劳
另外,我用 https://github.com/netnr/proxy 部署到 heroku 的 nodejs 版本测试链接正常 https://netnr-proxy.herokuapp.com/https://img.if101.tv/ximgs/a28cd049a029534140eddf0186bc13886659e493a8ca5615cc8d2413487fe6f64085b87f365a093c7be9abae3b0ed314.jpg
感觉可能是CF的原因
用临时域名又能访问,这是什么鬼原理///