我在 suse Linux 中有 Apache 2.2.22。我想在Apache中禁用跟踪和跟踪,并使用1-TraceEnable Off和2-RewriteEngine
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F] .
但是 2 种方式不起作用。
在 Apache2 中,您只需在 httpd.conf 中添加TraceEnable Off
即可(文件末尾(
TraceEnable Off
要检查跟踪是否开/关,您可以使用 Curl:
curl -v -X TRACE http://www.yourserver.com
把TraceEnable Off
放在httpd.conf中
若要禁用这些方法,请为每个虚拟添加以下行配置文件中的主机:
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
内瑟斯说
对于 Apache HTTPD 2.4: Require not method TRACE TRACK
请参阅需要指令
除非安装了支持 TRACK 的模块,否则 Apache 默认不支持 TRACK,因此只需要有指令:
TraceEnable Off
但是,对于腰带吊带方法,还要添加:
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) [NC]
RewriteRule ^.* - [F]
这将禁用 TRACE 和 TRACK。
使用 SSH 命令查看演示跟踪
默认情况下,TRACE 在 apache 安装中处于启用状态。 有两种方法可以修正。 如果您运行的是 Apache 1.3.34、2.0.55 或 2.2 发行版中的任何内容,则可以使用第一个。 只需将 TraceEnable 指令添加到 httpd.conf 中,并将值设置为 Off。
TraceEnable Off
在 httpd.conf 中添加此行
首先要做的是确保加载mod_rewrite。 如果您的 apache 配置中缺少 mod_rewrite.so,但您已经安装了它(并且您的安装位置是/usr/local/apache(,则将以下语句添加到您的 httpd.conf:
LoadModule rewrite_module "/usr/local/apache/modules/mod_rewrite.so"
然后将以下内容也添加到您的 httpd.conf 文件中:
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
使用 curl 命令进行测试
curl -v -X TRACE http://localhost
这里已经有一些答案,但我想我会插话并添加一些额外的选项。
Slipstream的方法当然是最简单的方法,所以如果你正在寻求一个快速简便的解决方案,那么你就有了一桶金。
TraceEnable
指令
正如这里提到的一些人,在 Apache2 中,您可以将 TraceEnable 指令附加到httpd.conf
或apache2.conf
文件的末尾:
TraceEnable Off
重写模块
您还可以向VirtualHost
添加重写配置,以显式阻止TRACK
和TRACE
请求:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCondition %{REQUEST_METHOD} ^(TRACE|TRACE)
RewriteRule . * - [F]
</IfModule>
使用此配置,Apache 会捕获所有TRACK
和TRACE
请求,并回复403 Forbidden
错误。原始请求的任何内容都不会回显。
重写模块(限制性更强(
但是,我没有看到其他人建议明确传递您想要允许的方法。这是一个稍微严格的修复程序,并且是PCI合规性所必需的:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_METHOD} !^(GET|POST|HEAD)
RewriteRule .* - [F]
</IfModule>
这将拒绝任何使用指令中未指定的方法的请求。同样,原始请求内容不会回显,服务器会以403 Forbidden
错误进行响应。
要记住的是,对于生产系统来说,RewriteEngine 可能是处理器密集型的。这通常不是什么大问题,因为增加将是毫秒(如果不是微秒(,但如果您有大量重写,则需要注意一些事项。
注意:对于上述重写配置,您需要取消注释 Apache 配置中的 LoadModule
或 AddModule
(取决于您的设置(指令rewrite_module
。
使用apache 2.3+中的mod_allowmethods
<Location "/">
AllowMethods GET POST OPTIONS
</Location>
https://httpd.apache.org/docs/2.4/mod/mod_allowmethods.html