title_parttitle_parttitle_part
静岡県浜松市であれこれソフトを開発している A.K.I Software のブログです。日々の開発日記やサーバー・セキュリティ関連の話題なども掲載。
<< 2024/04 >>123456789101112131415161718192021222324252627282930
《《《 ネットワーク機器の購入は Amazon で! 》》》
Powered by BLOM Windows版 Apache2 でワイルドカードエラー
小さくも大きくも閉じたりもしません
15/06/09 22:58 / IT関連

Apache2.2 のエラーログを見ていたら、余り見かけないエラーが出ているのを発見。

(20025)The given path contained wildcard characters: access to (URL)

直訳すると「URL にアクセスしようとしたけどパスにワイルドカードが入っているよ」でしょうか。

でも URL の箇所にアクセスしても特に問題なくアクセスができます。

検索してみると、どうやら Windows 版 Apache2 の固有の問題というか仕様のようです。(最新版の Apache2 では修正されているかもしれませんが)

上記のワイルドカードとは文字通りワイルドカードで Windows でいう * や ? のことです。

URL に*なんて使わないので、これはわかるのですが、?に関しては CGI を実行する際に、CGI と引数のセパレータとして使いますので、これをワイルドカードだからと言って拒否されては困ります。

しかし、アクセスすると別に拒否はされていませんので、最初は、文字化けとかそんな感じだと思っていたのですが、Referer を確認してみると、どうやら、?を Hex にエンコード(%3f)されていると発生するようです。

example.com/cgi-bin/cgi.exe?hogehoge

上記は正常にアクセスができますが

example.com/cgi-bin/cgi.exe%3fhogehoge

これだとなぜか Apache2 が弾きます。

んー、なんとなくですが

1)? が使われている場合はセパレータとして認識する。

2)URL エンコードされている場合は1のチェックが
働かない。

3)2の後に URLデコードして %3f が ? に置換される。

4)上記の場合だと「cgi.exe hogehoge」とCGI本体とパラメータに分解されるはずが「cgi.exe?hogehoge」というファイルとして認識される為、ワイルドカードが入っているよと拒否する。

5)403 forbidden としてアクセスが拒否される。
(これは多分 cgi-bin フォルダで、AddHandler 等で登録されたコンテンツでは無いので実行を拒否して 403 にしていると思われます)

うーん、Apache2 の仕様っぽいなぁ。
てなことで、mod_rewrite を使ってリダイレクトさせて対処します。
正規表現は普段使わないのですっかり忘れていました(笑)

いくつかアクセスしてみて正常に動作するので多分問題は無いでしょう。
検索しても同じようなケースは出てこないので珍しいパターンなのかもしれません。

[更新日付:2015/06/09 22:58:32]
トラックバックを見る(0)
Log Link [https://akisoftware.com/cgi-bin/blom.exe?akisoft+sl+e111fcec291b57891cf5970c17f716fbb7ec53b5]
TB Link [https://akisoftware.com/cgi-bin/blom.exe?akisoft+tb+e111fcec291b57891cf5970c17f716fbb7ec53b5]

記事へのコメント

コメントはありません

名前
コメントキー
 
コメントする時はキーを正確に入力して下さい
コメント
アドレスを含んだコメントはできません
© 2008-10 A.K.I Software all rights reserved.