(インライン画像) URLの記述により、閲覧者に Web bug や外部のCGI等を呼び出させる事ができる

修正

// PKWK_DISABLE_INLINE_IMAGE_FROM_URI - Disallow using inline-image-tag for URIs
//   Inline-image-tag for URIs may allow leakage of Wiki readers' information
//   (in short, 'Web bug') or external malicious CGI (looks like an image's URL)
//   attack to Wiki readers, but easy way to show images.
if (! defined('PKWK_DISABLE_INLINE_IMAGE_FROM_URI'))
        define('PKWK_DISABLE_INLINE_IMAGE_FROM_URI', 0);

定数 PKWK_DISABLE_INLINE_IMAGE_FROM_URI を追加しました。この値が1であるとき、「URIによって外部の画像をインライン表示させようとする行為」が無効化されます。

  1. 「画像へのURI(画像へのURLであるかのように見えるURI)」をページに書く事によって、それをインライン表示させようとする行為
  2. refプラグインに、上記「画像へのURL」を与える事によって、それをインライン表示させようとする行為
  3. imgプラグイン(インライン画像を出力するためのプラグイン)の使用

これによって「URIによって外部の画像をインライン表示させる事ができる」という利便性を失う代わりに、以下の利点を得ることができます。

  1. 第三者によって、外部のわいせつ画像などをインライン表示せしめられる行為の防止
  2. 第三者によって 'Web bug' を仕掛けられ、そのサイトへの閲覧者に関する統計情報を奪取される行為の防止
  3. 第三者によって悪意ある外部CGIへのURI(画像のURIであるかのように見えるもの)を仕掛けられ、閲覧者のブラウザ破壊などを試みる行為の防止
  4. 第三者によって閲覧者に、特定の外部リソースへのアクセスを行わせしめる行為 (外部サイトへのDoS等) の防止

メッセージ

refプラグインではいたずら防止のため、画像以外は指定されたURIを呼び出さないよう、チェックが設けられています。

しかしこのチェックはURIの末尾のみで判定を行うため、不十分であると思われます。 具体的には hogehoge.cgi?param1=fuga&param2=…&e=.png のようにダミーの条件を末尾に付け加える事でチェックはすり抜けてしまいます。

影響範囲はrefプラグインおよびmake_link.phpの2箇所。対処方法としては次のように ? を弾く方法が考えられるかと思います。

-define('PLUGIN_REF_IMAGE', '/\.(gif|png|jpe?g)$/i');
+define('PLUGIN_REF_IMAGE', '/^[^?]*\.(gif|png|jpe?g)$/i');

※この問題はofficial:欲しいプラグイン/51から発掘しました。




*1 まぁ、以前から拡張子での安易な判定はと言い続けてきているんですけど。
*2 自身の管理下にある画像ファイルを他のサイトに埋め込んで広告をもくろんだり、「そのファイルに対する」「閲覧者の」統計やアクセス記録を悪用しようとする業者がいると思って下さい
*3 同等あるいはそれ以上。ウイルスを送りつけたり
*4 作り直したいと思っているので (^^; 特にrefのオプション処理の部分
*5 なぜなら、画像のみ別サーバーに置いてる人も多いけど、やはり昨今のセキュリティ事情ならせめて同じドメインにはあるでしょうという理由
*6 正直、#clearに移行を促進したいので、どっちでもいいんですけど念のため (^^;

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-07-08 (金) 00:24:55
Site admin: PukiWiki Development Team

PukiWiki 1.5.3+ © 2001-2020 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.181 sec.

OSDN