有人设置了 CDN 服务器,将流量导向我的服务器,并将 HOST 标头设置为与我的某个真实域名匹配。因此,Apache 使用我的真实域名的虚拟主机,而不是 CDN 域名的主机名。
例如,URL 为:
http://cdn.example.com/pictures/www.mydomain.com/images/product/6a/229326.jpg
看来这个 CDN 是一个覆盖 HOST 标头的代理。Apache 将主机视为 www.mydomain.com,而不是 cdn.example.com。
我想阻止此流量,但我无法通过主机或 IP 进行阻止(因为它会发生变化)。有一个主机标头:
HTTP_X_FORWARDED_HOST=cdn.example.com
可能的?
编辑:没有安装 mod_security
答案1
您可以使用 mod_rewrite 来完成此任务:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Host} cdn.example.com
RewriteRule .* - [F]
如您所见,如果使用 curl 进行测试,则会拒绝访问:
[root@RPX conf]# curl -i -H "X-Forwarded-Host: cdn.example.com" http://localhost:80/algo/
HTTP/1.1 403 Forbidden
Date: Tue, 02 Jun 2015 16:49:37 GMT
Server: Apache
Content-Length: 207
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /algo/
on this server.</p>
</body></html>