WATANABE Akitsugu
aki****@de*****
2003年 8月 12日 (火) 23:35:11 JST
渡邊です。 From: Naoki Takezoe <ADS28****@nifty*****> Subject: [Fswiki-dev] 3.4.2への無限ループ対策について > 竹添です。 > > Naoki Takezoe <ADS28****@nifty*****> wrote: > > 上記の件ですが、よくよく考えてみるとincludeとtodolistだけ > 対処すればBBS2やカレンダ系についてはprocess_wikiメソッドの中で > 処理されるので無限ループにはならないような気がするのですが > > ・・・勘違いしてますでしょうか? まず、3.4.2系列では bbs2やcalendar系が{{include }}を呼び出しません。 これらは直接 process_wiki を叩いているので、 Wiki::process_wiki -> Parser::parse -> HTMLParser::l_plugin -> Wiki::process_inline -> plugin::.*::inline -> ふりだしに戻る という無限ループパスを生成し、ダメになると思います。 # 実験内容: # # 適当なカレンダーに今日の日付のエントリを作成する。 # エントリに {{recentcalendar 今使っているカレンダ名}} と書く # ・・・ # (ダウン) iswebで実験してみましたが、きっちり500で落ちました(涙)。 安全を考えると、Wiki::process_wiki の側でも無限ループを阻止する仕掛けを 用意した方が良いように思います。 シンプルな方法ですが、 Wiki::process_wikiあたりの呼び出し回数を制限するというのは いかがでしょうか? この方法で回避できないパターンはいくらでもありますが、 同一コンテンツの多重読込によるダウンだけは避けられます。 # 悪意あるプラグインから守る方法は・・・ALRMシグナルでしょうか -- WATANABE, Akitsugu (aki****@de*****)