[Fswiki-dev] plugin::rss cached URI problem

Back to archive index

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);
     }
という場当たり的な改造を施して凌いでいます。



Fswiki-dev メーリングリストの案内
Back to archive index