pcommentをネストした場合の脆弱性(多重書きこみ/無限ループ)

メッセージ

プラグインpcommentのコメントページの内に#pcommentを記述してコメントすると ループしてしまいます。 そのために元のページの表示に時間がかかるようになり、最悪ページが表示できなくなります。 これは元になるページとネストされたページの両方にコメントがある場合に起こるようです。 (PHPのバージョンは"4.1.2"です。)



表示の際の無限ループ



 function pcmt_get_comments($page, $count, $dir, $reply)
 {
         global $_msg_pcomment_restrict;
 
         if (!check_readable($page, false, false))
                 return array(str_replace('$1', $page, $_msg_pcomment_restrict));
 
-        $data = get_source($page);
+        $data = convert_filter(get_source($page));
<?php
// インクルードフィルタ(いずれrules.ini.phpにもっていきたい)
$filter_rules = (
   "^///(.*?)$" => "",
   "^#skin\((.*?)\)" => "",
   "^#tboff\((.*?)\)" => "",
   "^#pcomment\((.*?)\)" => "",
);
// インクルードで余計なものはソースから削除する(func.phpにもっていきたい)
function convert_filter($str)
{
       global $filter_rules;
       static $patternf,$replacef;

       if (!isset($patternf))
       {
               $patternf = array_map(create_function('$a','return "/$a/";'),array_keys($filter_rules));
               $replacef = array_values($filter_rules);
               unset($filter_rules);
       }
       return preg_replace($patternf,$replacef,$str);
}
?>

多重書き込み


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

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u8. HTML convert time: 0.261 sec.

OSDN