首页 > 解决方案 > 修复 Web 服务器上不安全的 HTTP 方法

问题描述

我的客户在问:以下 Web 服务器向最终用户暴露了多种不同的方法,这些方法可能使 Web 服务面临不同程度的风险。可接受的 Web 方法通常是 GET、POST 和 CONNECT(在 HTTPS 的情况下)。

• 服务器a • 服务器b 发现Web 服务器上存在OPTIONS HTTP 方法 OPTIONS 方法允许攻击者枚举Web 服务器上可用的方法,这些方法允许服务器接受TRACE 方法并使其自身易受HTTP TRACE 攻击跨站点脚本漏洞。这是因为 TRACE 方法只是将用户提供的输入回显给最终用户。

现在如何禁用此方法,如何检查这些以及是否会有任何停机时间来改变它。服务器正在运行centos

标签: apihttppostoptionstrace

解决方案


首先检查 Trace 和 options 方法是否启用。

curl -i -X TRACE <URL>
curl -i -X OPTIONS <URL>

如果 http 响应为 200,则启用这些方法。

禁用并且只允许 GET POST 和 CONNECT

首先要做的是确保 mod_rewrite 已加载。如果您的 apache 配置中缺少 mod_rewrite.so 但您已经安装了它(并且您的安装位置是 /usr/local/apache),则将以下语句添加到您的 httpd.conf 中:

LoadModule  rewrite_module  "/usr/local/apache/modules/mod_rewrite.so"

然后将以下内容也添加到您的 httpd.conf 文件或 <virtualhost>...</virtualhost> 中:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_METHOD} !^(GET|POST|CONNECT)
  RewriteRule .* - [F] 
</IfModule>

或者仅禁用 TRACE 对于 apache2,可以在主 httpd.conf 文件中添加以下内容:

TraceEnable off

重启阿帕奇


推荐阅读