Yoshihiro Yamazaki
yoya****@awm*****
2005年 12月 10日 (土) 01:57:09 JST
はじめまして、fswiki ユーザの yoya と申します。 fswiki にはとてもお世話になっております。m(__)m plugin::rss の「ページの更新状況をRSSとして出力する機能」について よくない挙動を見つけましたので、ご報告させて下さい。 RSS 出力で表示する、更新されたページの URI は、リクエスト URL をベースに 生成しているようですが、rss plugin は生成した RSS ファイルをキャッシュと して貯めて使いまわす為に、以下のような問題が生じました。 - Wiki を動かすホストを設置しているネットワークの LAN 内にいるユーザが、 FQDN でないホスト名で Wiki の RSS 出力機能にアクセスした。 (リクエストURL ) http://hoge/wiki.cgi?action=RSS (RSS 出力の中身) rdf:resource="http://hoge/wiki.cgi?.... その後、 - LAN の外のネットワークから Wiki の RSS にアクセスした人がいて RSS のメッセージ中に FQDN でないホスト名の URI が並んでいた為、 その (RSS で取得した) URI にアクセス出来なかった (リクエストURL ) http://hoge.example.org/wiki.cgi?action=RSS (RSS 出力の中身) rdf:resource="http://hoge/wiki.cgi?.... キャッシュが更新されるタイミングで、たまたま RSS 出力をさせた時の リクエスト URL の情報が万人に公開される訳ですが。これはよろしく 無いと思います。例えば、その更新をするタイミングで、 - Wiki ホスト上の人が localhost でアクセスする - TCP/HTTP をリレーするホストを経由してアクセスする -> その他の人が RSS を取得すると、見当外れの URI が得られる。 -> 場合によってはリレーホストの名前を晒す事になる - 自前 DNSサーバで独自に設定したホスト名でアクセスする - /etc/hosts 等で勝手に設定したホスト名でアクセスする -> その他の人が RSS を取得すると、他人が勝手に設定したホスト名を 含む URI を知らされる。 -> あやしげなホストに誘導する事も出来そう。 といったケースが想像できます。実際、Windows 端末で lmhosts で 適当なホスト名をつけて RSS 出力をさせたところ、その適当なホスト名の 入った URI を表示させる事が出来ました。 確認した fswiki のバージョンは 3.5.10 です。 思いつきですが、 更新ページ URI のベースを CGI モジュールの url() で取得する今のやり方 をやめて、config 等に手動で設定したホスト名を URI のベースとする方が 良いのではないかと思うのですが、如何でしょう。 尚、自分のホストの Wiki では、 - config.dat に - rss_uribase=http://wiki.awm.jp - RSSMaker10.pm に - my $uri = $wiki->get_CGI->url(-path_info => 1); if ($wiki->config('rss_uribase')) { $uri = $wiki->config('rss_uribase') . $wiki->get_CGI->url(-absolute => 1); } という場当たり的な改造を施して凌いでいます。