首页 文章

在Apache中阻止代理用户

提问于
浏览
0

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

例:

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 回答

  • 1

    它可能是你正在寻找的X-Forwarded-For Headers .

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

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

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

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

相关问题