所以我试图在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]
任何可能出错的线索?
干杯!
答案 0 :(得分: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/
答案 1 :(得分:0)
此配置更改适用于“Apache / 2.2.3(Linux / SUSE)”/ CENTOS
编辑文件 / etc / sysconfig / apache2 查找下面的行,并在末尾添加重写。它将加载模块“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单选按钮。如果有效,您应该看到状态:HTTP / 1.1 403禁止。