3

所以我试图禁用 Apache 中的 TRACE 方法,这也是这个问题Disabling TRACE request method on Apache/2.0.52中的问题。

我已经在 VirtualHost 块、目录块、.htaccess 文件等中尝试了重写规则。此外,httpd.conf 中的 TraceEnable Off 选项不起作用。

这是我的测试的输出:

[root@localhost user]# nc www.domain.com 80
TRACE / HTTP/1.1
Host: www.domain.com
VAR1:test

HTTP/1.1 200 OK
Date: Wed, 22 Aug 2012 13:37:38 GMT
Server: Apache/2
Transfer-Encoding: chunked
Content-Type: message/http

3c
TRACE / HTTP/1.1
Host: www.domain.com
VAR1: test

0

重写规则是:

RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^TRACE
RewriteRule .* - [F]

任何可能出错的线索?

干杯!

4

2 回答 2

4

对于 apache2,可以在主 httpd.conf 文件中添加以下内容:

TraceEnable off

您可以使用 Curl 测试 Trace 是否打开/关闭,例如:

curl -v -X TRACE http://www.yourserver.com

参考:http ://www.ducea.com/2007/10/22/apache-tips-disable-the-http-trace-method/

于 2014-06-11T10:30:37.763 回答
0

此配置更改适用于“Apache/2.2.3 (Linux/SUSE)”/CENTOS

编辑文件/etc/sysconfig/apache2查找下面的行并将rewrite添加到末尾。它将加载模块“mod_rewrite.so”。解释,在 CENTOS 中,LoadModule 配置文件 (/etc/apache2/sysconfig.d/loadmodule.conf) 被 /usr/sbin/rcapache2 覆盖

APACHE_MODULES="apparmor actions alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user authn_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif ssl suexec userdir php5 rewrite"

/etc/apache2/httpd.conf.local中添加/替换以下 IfModule 语句,以避免在未加载模块的情况下引发错误。

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_METHOD} ^TRACE
    RewriteRule .* - [F]
</IfModule>

要进行测试,您可以访问http://web-sniffer.net/并选择 TRACE 单选按钮。如果可行,您应该会看到Status: HTTP/1.1 403 Forbidden

于 2014-02-07T21:18:06.057 回答