在Apache中阻止代理用户

时间:2017-12-01 20:32:28

标签: apache .htaccess

我的理解是,在apache访问日志中,在一行而不是1上列出了2个IP地址,它是使用代理的“用户”。

示例:

112.96.179.188 36.56.114.20 - [30 / Nov / 2017:12:43:05 -0500]“POST / customer / HTTP / 1.1”302 - “https://www.example.com/customer/”“Mozilla / 5.0(Windows NT) 6.1; WOW64; rv:29.0)Gecko / 20100101 Firefox / 29.0“

我管理的网站上的所有垃圾邮件流量都来自这些“用户”。

htaccess是否有办法阻止这些访问网站?

1 个答案:

答案 0 :(得分:1)

这可能是您正在寻找的X-Forwarded-For标题。

虽然您通常可以假设每个带有该标头的请求来自a)代理人背后的某个人或b)假装是代理人的人,您无法确定该标头的缺失意味着某人没有使用代理。许多代理不会传递此信息。因为它只是一个普通的HTTP标头,所以在提供内容时你不能信任它,因为客户端可以将它设置为它想要的任何值。

也就是说,您可以使用RewriteCond检查该字段的存在和值并拒绝该请求:

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-For} !^$
RewriteRule . - [F,L]

这将匹配该标头不为空的所有请求(如果它不存在,则将其视为空)。