我在我的 apache 访问日志中发现了这一点
access.log:555.555.555.555 - - [05/May/2011:12:12:21 -0400] "GET /somedir/ HTTP/1.1" 403 291 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20100101 Firefox/5.0"
access.log:555.555.555.555 - - [05/May/2011:12:12:29 -0400] "GET /somedir/ HTTP/1.1" 200 7629 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20100101 Firefox/5.0"
因此 /somedir/ 有一个 .htaccess 文件,如下所示
Order Deny,Allow
Deny from all
Allow from 333.333.333.333
Allow from 444.444.444.444
htaccess 在时间段内未被修改(12:12:21 至 12:12:29 之间的 8 秒内)
有没有人知道为什么会出现 403 Forbidden 错误,然后 8 秒后又会出现 200 OK 错误?我很困惑
答案1
我相信 .htaccess 仅在 tcp 会话启动时进行检查,并且通过在数据包级别进行巧妙的操作,仍然可以操纵帧,使得第一个帧仅在会话设置时具有虚假 IP,然后真实会话具有您试图阻止的真实 IP。
这就是我们拥有状态防火墙的原因——htaccess 不能替代防火墙。
或者,您的 .htaccess 根本没有经过检查 - 您测试过它是否有效吗?:-)
答案2
- 您的顶级配置是否允许您使用 .htaccess?检查您的 允许覆盖 http://httpd.apache.org/docs/1.3/mod/core.html#allowoverride 指令你应该将其设置为全部或者限制
- 检查您的配置中是否没有任何身份验证限制。