在Web服务器防止Host头攻击
字数 1331 2025-08-18 11:37:28

Web服务器防止Host头攻击的全面防护指南

一、Host头攻击概述

Host头攻击是指攻击者通过篡改HTTP请求中的Host头部字段,试图绕过安全限制或实施其他恶意行为的攻击方式。虽然自动补全路径导致的302/301跳转风险较低,但出于合规要求,大多数企业仍需修复此类漏洞。

二、Apache服务器防护方案

方法一:使用规范名称

  1. 修改conf/httpd.conf文件
  2. 设置ServerName为应用域名:
    ServerName www.domain.com:80
    
  3. 添加配置:
    UseCanonicalName On
    
  4. 重启Apache服务

效果:服务器将始终使用预设的ServerName,忽略客户端提供的Host头

方法二:虚拟主机配置

  1. 修改conf/httpd.conf文件,添加以下配置:
    NameVirtualHost 192.168.0.16
    
    <VirtualHost 192.168.0.16>
        ServerName 192.168.0.16
        <Location />
            Order Allow,Deny
            Deny from all
        </Location>
    </VirtualHost>
    
    <VirtualHost 192.168.0.16>
        DocumentRoot "C:\www"
        ServerName www.test.com
    </VirtualHost>
    
  2. 重启Apache服务

效果

  • 直接通过IP(192.168.0.16)访问将被拒绝
  • 仅允许通过www.test.com域名访问
  • 主目录指向C:\www

方法三:重写模块方案

  1. 修改conf/httpd.conf文件
  2. 取消注释重写模块:
    LoadModule rewrite_module modules/mod_rewrite.so
    
  3. 添加重写规则:
    RewriteEngine on
    RewriteCond %{HTTP_HOST} !^192.168.0.16$ [NC]
    RewriteRule ^(.*)$ /error.html
    
  4. 重启Apache服务

效果:当Host头不是192.168.0.16时,重定向到错误页面

三、Nginx服务器防护方案

方法一:默认server配置

  1. 修改nginx.conf文件
  2. 添加默认server配置:
    server {
        listen 8888 default;
        server_name _;
        location / {
            return 403;
        }
    }
    
  3. 重启Nginx服务

效果:当Host头不匹配任何server时,返回403错误

方法二:Host头检测规则

  1. 修改nginx.conf文件
  2. 在目标server中添加检测规则:
    server {
        server_name 192.168.0.171;
        listen 8888;
    
        if ($http_Host !~*^192.168.0.171:8888$) {
            return 403;
        }
    
        include /etc/nginx/default.d/*.conf;
    
        location / {
            root /www/dvwa;
            index index.php index.html index.htm;
        }
    }
    
  3. 重启Nginx服务

效果:当Host头不匹配192.168.0.171:8888时,返回403错误

四、Tomcat服务器防护方案

  1. 修改tomcat/conf/server.xml文件
  2. 找到<Host>标签,修改name属性为静态域名:
    <Host name="www.yourdomain.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
    
  3. 重启Tomcat服务

五、IIS 6.0防护方案

使用ISAPI_Rewrite插件

  1. 下载并安装ISAPI_Rewrite插件
  2. 使用破解工具替换安装目录中的三个文件
  3. 为ISAPI_Rewrite.dll添加SERVICE用户组,授予读取、读取和运行权限
  4. 在IIS管理工具中添加ISAPI筛选器
  5. 配置Host头白名单规则

规则示例

RewriteCond %{HTTP_HOST} !^192\.168\.2\.141$
RewriteRule ^(.*)$ - [F]

效果:当Host头不是192.168.2.141时,返回403错误

六、IIS 7.0/7.5/8.0防护方案

使用URL重写模块

  1. 下载并安装URL重写模块
  2. 在IIS管理工具中添加入站规则
  3. 选择"请求阻止"规则类型
  4. 配置规则:
    • 模式:.*
    • 条件:{HTTP_HOST}不匹配^192\.168\.124\.149$
  5. 设置操作类型为"中止请求"
  6. 重启网站服务

效果:当Host头不是192.168.124.149时,服务器中止请求

七、总结

针对不同Web服务器,防护Host头攻击的主要方法包括:

  1. 强制使用规范域名(UseCanonicalName)
  2. 配置虚拟主机限制访问来源
  3. 使用重写模块检测并拦截非法Host头
  4. 设置默认server/站点处理非法请求
  5. 使用第三方模块增强防护能力

企业应根据实际使用的Web服务器类型选择适合的防护方案,确保在满足合规要求的同时,有效防范Host头攻击带来的安全风险。

Web服务器防止Host头攻击的全面防护指南 一、Host头攻击概述 Host头攻击是指攻击者通过篡改HTTP请求中的Host头部字段,试图绕过安全限制或实施其他恶意行为的攻击方式。虽然自动补全路径导致的302/301跳转风险较低,但出于合规要求,大多数企业仍需修复此类漏洞。 二、Apache服务器防护方案 方法一:使用规范名称 修改 conf/httpd.conf 文件 设置 ServerName 为应用域名: 添加配置: 重启Apache服务 效果 :服务器将始终使用预设的ServerName,忽略客户端提供的Host头 方法二:虚拟主机配置 修改 conf/httpd.conf 文件,添加以下配置: 重启Apache服务 效果 : 直接通过IP(192.168.0.16)访问将被拒绝 仅允许通过www.test.com域名访问 主目录指向C:\www 方法三:重写模块方案 修改 conf/httpd.conf 文件 取消注释重写模块: 添加重写规则: 重启Apache服务 效果 :当Host头不是192.168.0.16时,重定向到错误页面 三、Nginx服务器防护方案 方法一:默认server配置 修改nginx.conf文件 添加默认server配置: 重启Nginx服务 效果 :当Host头不匹配任何server时,返回403错误 方法二:Host头检测规则 修改nginx.conf文件 在目标server中添加检测规则: 重启Nginx服务 效果 :当Host头不匹配192.168.0.171:8888时,返回403错误 四、Tomcat服务器防护方案 修改 tomcat/conf/server.xml 文件 找到 <Host> 标签,修改name属性为静态域名: 重启Tomcat服务 五、IIS 6.0防护方案 使用ISAPI_ Rewrite插件 下载并安装ISAPI_ Rewrite插件 使用破解工具替换安装目录中的三个文件 为ISAPI_ Rewrite.dll添加SERVICE用户组,授予读取、读取和运行权限 在IIS管理工具中添加ISAPI筛选器 配置Host头白名单规则 规则示例 : 效果 :当Host头不是192.168.2.141时,返回403错误 六、IIS 7.0/7.5/8.0防护方案 使用URL重写模块 下载并安装URL重写模块 在IIS管理工具中添加入站规则 选择"请求阻止"规则类型 配置规则: 模式: .* 条件: {HTTP_HOST} 不匹配 ^192\.168\.124\.149$ 设置操作类型为"中止请求" 重启网站服务 效果 :当Host头不是192.168.124.149时,服务器中止请求 七、总结 针对不同Web服务器,防护Host头攻击的主要方法包括: 强制使用规范域名(UseCanonicalName) 配置虚拟主机限制访问来源 使用重写模块检测并拦截非法Host头 设置默认server/站点处理非法请求 使用第三方模块增强防护能力 企业应根据实际使用的Web服务器类型选择适合的防护方案,确保在满足合规要求的同时,有效防范Host头攻击带来的安全风险。