如何拦截其他网站盗用我域名/go/*跳转链接的点击请求?
解决方案:拦截可疑的ThirstyAffiliate跳转链接点击
一、AWS WAF + CloudFront 实现方案(优先推荐)
利用CloudFront边缘节点配合WAF拦截,不占用源站资源,效率更高。核心是通过请求路径和Referer头组合判断,拦截非法请求:
- 创建WAF Web ACL并关联到你的CloudFront分发
- 添加自定义规则,配置以下逻辑(规则条件用
AND关联):- 条件1:请求URI前缀匹配
/go/(选择「前缀匹配」,目标字段选URI,匹配值填/go/) - 条件2:Referer头不满足以下任一情况:
- Referer包含你的域名
www.mywebsite.com(选择「字符串包含」,目标字段选Referer,匹配值填www.mywebsite.com) - Referer头为空(覆盖用户直接在地址栏输入链接的合法场景)
- Referer包含你的域名
- 条件1:请求URI前缀匹配
- 规则动作设置为阻止(Block),并在自定义响应中配置返回401状态码(可自定义401页面内容)
注意:如果有合作网站需要合法跳转,可在条件2中额外添加允许的可信域名Referer。
二、服务器级实现方案
Nginx 配置示例
在你的站点Nginx配置文件中添加以下规则块:
location ^~ /go/ { # 仅允许来自本站或无Referer的请求 if ($http_referer !~* "^(https?://www.mywebsite.com/|$)") { return 401; } # 保留原有ThirstyAffiliate的跳转逻辑(替换为你站点原本的处理规则) try_files $uri $uri/ /index.php?$args; }
^~ /go/确保该路径规则优先匹配,避免被其他规则覆盖- 正则匹配过滤掉非本站、非空Referer的请求,直接返回401
Apache 配置示例(.htaccess)
在站点根目录的.htaccess中添加:
RewriteEngine On # 拦截/go/路径下的非法Referer请求 RewriteCond %{REQUEST_URI} ^/go/ RewriteCond %{HTTP_REFERER} !^https?://www.mywebsite.com/ [NC] RewriteCond %{HTTP_REFERER} !^$ RewriteRule ^(.*)$ - [R=401,L]
补充说明
- Referer头存在被篡改的可能,若需要更强防护,可结合以下规则:
- 添加请求频率限制,拦截批量刷点击的异常流量
- 验证User-Agent,过滤明显的爬虫标识
- 测试阶段建议先用「计数(Count)」模式观察拦截数据,确认无合法请求被误拦后再切换为「阻止」模式
内容的提问来源于stack exchange,提问作者Windwave
相关产品推荐
相关产品推荐

