時折 Apache のログで見かける \xe3\x83\xbc ... のような \x 始まりのエンコードがされた文字列の正体がようやく分かったのでメモ。
事の発端は、 Apache のログを眺めていると時折
\xe3\x83\x87\xe3\x83\xbc\xe3\x82\xbf\xe3\x83\x99\xe3\x83\xbc\xe3\x82\xb9\xe3\x82\xa8\xe3\x83\xa9\xe3\x83\xbc
のような何某かのエンコードがされた文字列を見かけることがあったのですが
長らくその正体が杳として知れない状態が続いていました。
ところが、別件で検索していたら、偶然正体が分かったのでメモ。
これは Apache 2.2.25 で修正されたログ出力の脆弱性対策とのこと。
具体的には、
%
を \x
に変換しているということ。
てっきり UTF-8 や UTF-16 の特殊形のようなものかと思ったのですが、実際はパーセントエンコーディングの変形に過ぎなかった、と。
ルールさえ分かればデコードも楽にできますね。ただ、わざわざ脆弱性対策のためにエスケープしているので無暗に元に戻さない方が良いのではありますが、ログを確認する際に読めないのは困るのでサンドボックス内等でケースバイケースで、という感じでしょうか。
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント