怎么防止用 cname 绕过了 cloudflare 的 WAF

292 天前
 tony4god

大家好,我有一个 A 域名,托管在 cloudflare ,本来是设置了一些 WAF 规则。 但是最近我发现 nginx 的日志出现了 B 域名的访问记录。 所以我自己测试了下,我用 C 域名设置 cname 规则到 A 域名上,就可以绕过 A 域名上面设置的 WAF 规则,即使 WAF 规则明确包含了 hostname 只能是 A 域名也没用,比如:

( http.host ne "a.com") Then take action "Block"

请教大家,除了在 nginx 上匹配空域名返回 403 外,cldouflare 有什么设置可以解决这个问题?

1985 次点击
所在节点    程序员
14 条回复
tony4god
292 天前
WAF 上的访问速率限制也失效了。
kokutou
292 天前
b 域名经过了 cf 吗。。。
是不是你的源 ip 泄露了 。。。
tony4god
292 天前
@kokutou #2 没有呢,我自己用 C 域名在浏览器测试了,可以绕过,不需要知道原 ip
cnrting
292 天前
是人家在他自己的 cf 后台将 B 域名 A 记录指向了你的 ip ,除了换 ip 没别的办法
Byzliu
292 天前
IP 泄露了
serafin
292 天前
B 域名上面设置的 WAF 。CF 这么设计没问题
serafin
292 天前
只有两域名都是同一个 CF 账号下才可以。其他人设置 cname 并不可以绕过了 cloudflare
icy37785
292 天前
单纯的源站 IP 暴露了。换个 IP 吧
centralpark
292 天前
就是 IP 泄漏了呀,有好多网站可以查 DNS 历史记录的,换 IP 吧,别的都没用
hymzhek
292 天前
把域名 A B 都放在同一个 vhost 配置里 即一个网站配置两个域名 反正都用 cdn 用错域名 就证书错误
hymzhek
292 天前
上边想错了 nginx 只配置 A 域 nginx server_name _ 同时监听 80 443 开启 ssl_reject_handshake on
用 B 域名访问会出现 Invalid SSL certificate 的 cf 层面会拦截的
tony4god
292 天前
也只能是 A 记录指向了我的 IP 了,只是。。。
我昨天下午刚买的新 vps😱
neutrinos
292 天前
vps 上白名单 cf 的 ip ,其它 ip 禁掉
neutrinos
292 天前

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/960688

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX