You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

设置.htaccess仅允许自身IP后,外部IP获200状态的原因及解决方法

问题描述

我正在搭建网站,已在.htaccess中添加如下规则,仅允许自身IP访问:

#allow access only from my ip address
order deny,allow
deny from all
allow from <my IP address>

我的主机是Hostgator共享主机,通过其cPanel的访客查看功能发现,大部分访问请求返回403、406或409状态码,但有两个IP访问根路径“/”时获得200成功状态码:一个是来自中国的恶意IP(36.99.136.128),另一个是Palo Alto Networks的扫描IP(205.210.31.75),具体记录如下:

IP - 36.99.136.128 (this shows IP address from China with 100% chance of being malicious)
URL - /
Time - 7/25/24, 3:59 PM
Size (bytes) - 12097
Status - success 200
Method - GET
Protocol - HTTP/1.1
Referring URL - 
User Agent - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 webmail.<my domain>.com <my server IP address>

IP - 205.210.31.75 (When I do a geolocation it shows this belongs to Palo Alto Networks, out of California)
URL - /
Time - 7/25/24, 11:31 PM
Size (bytes) - 37179
Status - success 200
Method - GET
Protocol - HTTP/1.1
Referring URL - 
User Agent - Expanse, a Palo Alto Networks company, searches across the global IPv4 space multiple times per day to identify customers' presences on the Internet. If you would like to be excluded from our scans, please send IP addresses/domains to: scaninfo@paloaltonetworks.com cpanel.<my domain>.com <my server IP address>

请问这两个IP为何能获得200状态码?是否绕过了.htaccess的限制?如何严格实现仅允许自身IP访问的规则?


解答

一、两个IP能获得200状态码的原因

这两个IP并非直接绕过你的.htaccess规则,而是Hostgator共享主机的特殊配置导致的:

  1. Palo Alto Networks的扫描IP(205.210.31.75):Hostgator这类主机商会和安全厂商合作,定期对服务器进行安全扫描,Palo Alto的Expanse扫描属于官方授权的检测,主机商的全局服务器配置(如httpd.conf)会默认放行这类扫描IP,优先级高于你自己的.htaccess规则。
  2. 恶意IP(36.99.136.128):从User Agent里的webmail.<my domain>.com和服务器IP来看,这个请求大概率是通过webmail子域名的内部跳转发起的——webmail这类附属服务通常有独立的访问配置,不会继承主域名的.htaccess规则,攻击者可能利用了这一点绕开限制。

二、严格实现仅允许自身IP访问的方法

1. 改用Apache 2.4的现代语法(替代旧的order deny,allow)

Hostgator共享主机普遍支持Apache 2.4,Require指令的规则更严格且优先级更高,替换你的.htaccess内容为:

# 仅允许指定IP访问
Require ip <你的真实IP>

# 拒绝所有其他访问
Require all denied

如果你的IP是动态的,可以用CIDR格式(比如192.168.1.0/24),或者结合Require host指定你的动态域名。

2. 覆盖附属服务的访问规则

针对webmail、cpanel这类子域名,直接在对应的子目录下添加相同的.htaccess规则,或者通过cPanel的IP Blocker工具,将非授权IP加入黑名单,同时把你的IP加入白名单——cPanel的IP限制工具全局生效,优先级高于目录级的.htaccess。

3. 处理反向代理导致的IP识别问题

共享主机通常使用反向代理,此时.htaccess获取的可能是代理IP而非真实客户端IP。可以添加以下规则让Apache识别真实IP:

# 识别反向代理传递的真实IP
SetEnvIf X-Forwarded-For "^(\d+\.\d+\.\d+\.\d+)" CLIENT_IP=$1

# 仅允许真实IP访问
Require ip <你的真实IP>

具体需要确认Hostgator使用的代理IP头(可能是X-Forwarded-For或X-Real-IP),可以联系主机商核实。

4. 验证规则有效性

修改.htaccess后,用非自身IP的设备访问网站,确认返回403;同时查看cPanel的错误日志,检查规则是否正常生效。


内容的提问来源于stack exchange,提问作者jdias

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 12:12:38