* (インライン画像) URLの記述により、閲覧者に Web bug や外部のCGI等を呼び出させる事ができる [#s7d2c605] - 元タイトル: refプラグインで外部cgi等を呼び出し可能 -ページ: [[BugTrack2]] -投稿者: [[にぶんのに]] -優先順位: 普通 -状態: 提案 -カテゴリー: その他 -投稿日: 2005-05-18 (水) 02:13:48 -バージョン: ALL **メッセージ [#rff466d9] refプラグインではいたずら防止のため、画像以外は指定されたURIを呼び出さないよう、チェックが設けられています。 ~しかしこのチェックはURIの末尾のみで判定を行うため、不十分であると思われます。 具体的には hogehoge.cgi?param1=fuga¶m2=…&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'); ※この問題は[[org:欲しいプラグイン/51]]から発掘しました。 ---- -そういうレベルで気にするのであれば、is_image の判定は、getimagesize で画像の種類を特定するようにした方が、良いと思いますけどね。((まぁ、以前から拡張子での安易な判定はと言い続けてきているんですけど。)) -- [[upk]] &new{2005-05-18 (水) 19:25:23}; -これを利用したトリッキーな運用も時々見かけますから一概に弾くのはあまり良くないかも知れません。upkさんの言われるようにきっちりした判定をするか、あるいはPKWK_SAFE_MODEあたりで制限を加えるか、あたりが妥当だと思います。 -- [[Ratbeta]] &new{2005-05-18 (水) 20:41:03}; -お疲れ様です。タイトル等を修正しました。 -- [[henoheno]] &new{2005-05-18 (水) 21:54:49}; -- 元のタイトルで一瞬ドキっとしましたが、この件は「外部サイトに対するインライン画像を許可」している(利点に対する)欠点に関するものの様です。話題にするならば、該当の挙動を許可している全ての部分が対象となります。 -- [[henoheno]] &new{2005-05-18 (水) 21:57:26}; --- (1) 「画像へのURL」を記述する事によって、「インライン画像」のためのHTMLを出力する機能 (PukiWiki本体) --- (2) 1と類似の機能を持つプラグイン(imgプラグイン、refプラグイン) -- これら全てに対して「外部サイトに対するインラインイメージを許可する」か「拒否する」選択肢を与え、まとめてそのポリシーを強制できるようにしなければ話は終わらないと思います。 -- [[henoheno]] &new{2005-05-18 (水) 22:01:57}; -- 外部サイトの画像に対するインラインイメージを許可しているのであれば、どのようなWebシステムであっても Web bug ((自身の管理下にある画像ファイルを他のサイトに埋め込んで広告をもくろんだり、「そのファイルに対する」「閲覧者の」統計やアクセス記録を悪用しようとする業者がいると思って下さい)) やcgi叩き((同等あるいはそれ以上。ウイルスを送りつけたり))は実現可能です。mod_rewriteなどでクエリ文字列(「?」)などを打ち消す事さえ可能ですから、URLに使う文字種だけのチェックでは攻撃を100%防ぐ事はできません。 -- [[henoheno]] &new{2005-05-18 (水) 22:05:48}; -・・・ということで、ぜひ上記を改造してください (爆) この件は改良点として以前から認識しているのですが、本当に取り掛かると前作業の時点でrefプラグインを一から作り直しそうになる((作り直したいと思っているので (^^; 特にrefのオプション処理の部分))ので、私はなかなかエンジンをかけられません。 -- [[henoheno]] &new{2005-05-18 (水) 22:10:18}; #comment