ApacheでTRACEメソッドを拒否する

最近、担当じゃない案件の尻ぬぐいばかりやってます。品証担当じゃないんですけど・・・



ApacheでTRACEメソッドを拒否する方法ですが、Apacheを知っている人ならなんてことないことで、当然やってるよねと思ってたらやってなくってセキュリティ診断で怒られたと騒いでるチームがあって、少しお手伝いを。

TraceEnable off

でも良いんですが、LimitExceptでTRACEメソッドが制限できないための後付け感がプンプンするディレクティブです。というか私は使ったことがなくて・・・。昔からApacheを使っている人はmod_rewriteですよね。

で、業務要件を確認してみるとGETとPOSTしか使っていないとのことだったので、

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

でGETもしくはPOST以外の電文を破棄しHTTP 403を返します。

50インスタンス以上ありVirtualHostもあるものだから設定が大変でした(^^;A



mod_rewriteは便利なモジュールで本当に重宝します。



設定したら確認ですがインスタンスが多すぎて1インスタンスずつ確認なんてやってられません。

運良く(?)、Non-SSLインスタンスだったので楽できました(^^)

$ lsof -c httpd | grep LISTEN | awk '{print $9}' | sort -u | \
awk -F: '{print "echo TRACE / | telnet localhost "$NF}' | sh