3

我认为某些恶意机器人或用户在请求中伪造了引用者,从而绕过了我的拒绝声明。

除其他片段外,我的 htaccess 具有以下内容

    ErrorDocument 403 "Nothing Interesting Here"
    order allow,deny
    deny from .eviluser.org
    allow from all

我的 htaccess 中也有:

    RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?eviluser.*$ [NC]
    RewriteRule .* - [F,L]

但我的日志显示:

    wnode1.eviluser.org - - [14/Nov/2012:18:21:44 -0500] "GET /some-document.html HTTP/1.0" 200 68584 "http://myoriginaldomain/some-document.html" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0"

问题:1)如果 wnode1.eviluser.org 被拒绝,它怎么可能得到一个 200 代码?2) 他们是否通过伪造作为我网站上的文件的推荐人来绕过这一点?

谢谢。

4

1 回答 1

0

Apache 的mod_authz_host 文档建议如果您在allow from语句中使用主机名,它将进行反向查找。没有提到任何内容deny from,但我认为这以相同的方式工作。这篇博客文章表明这​​个假设是正确的。

deny from鉴于此,至少对于语句来说,伪造原始主机名是不可能的。做到这一点的唯一方法是在数据包级别伪造原始 IP 地址,但是在非常有限的情况下可以使用它。另一方面,你RewriteCond %{HTTP_REFERER}的显然是伪造的。

我对 Apache 配置不够好,无法查看您的代码并查看是否存在问题,但上述提示可能是配置错误而不是 Apache 限制。

我会尝试根据 IP 地址(例如deny from 100.100.0.0)拒绝,看看你是否会得到更好的结果。顺便说一句,您是否测试过自己的主机名?(例如,deny from localhost),或者尝试拒绝具有您控制的有效反向查找的机器?

于 2012-11-15T03:00:01.090 回答