**tradelist.inc.php [#r6dbbb07] |RIGHT:100|LEFT:360|c |~サマリ|コレクター御用達トレードリスト管理プラグイン| |~リビジョン|1.0| |~対応バージョン|1.4.2| |~投稿者|[[Nekyo]]| |~投稿日|&new{2004-02-25 (WED) 00:55:08};| ***概要 [#ff8d39fd] ~自ページ内の一覧と個数から管理された在庫情報から、探しているものと提供可能なものに振り分けてテーブルに展開してトレードリストを作成します。 ~自分で欲しいから作りました。 ~RSSで、トレードリストを他のサイトに配信することも可能です。 ***掲載先 [#s27b1400] ~http://nekyo.hp.infoseek.co.jp/ → IsWeb/tradelist を選択して下さい。 ***サイト内関連ページ [#a082abb1] #related ***コメント [#t77daf14] -[[名無しさん]] &new{2004-03-29 (MON) 06:31:33}; ~&color(red){XSSの脆弱性が存在します。};下記のように出力部分の修正が必要です。 function plugin_tradelist_convert() { $argc = func_num_args(); $argv = func_get_args(); $title1 = TAKETITLE; $bgcol1 = ""; $title2 = GIVETITLE; $bgcol2 = ""; if (($argc >= 1) && $argv[0]) { - $title1 = $argv[0]; + $title1 = htmlspecialchars($argv[0]); } if (($argc >= 2) && $argv[1]) { - $bgcol1 = " bgcolor=\"$argv[1]\""; + $bgcol1 = " style=\"background-color:".htmlspecialchars($argv[1])."\""; } if (($argc >= 3) && $argv[2]) { - $title2 = $argv[2]; + $title2 = htmlspecialchars($argv[2]); } if (($argc >= 4) && $argv[3]) { - $bgcol2 = " bgcolor=\"$argv[3]\""; + $bgcol2 = " style=\"background-color:".htmlspecialchars($argv[3])."\""; } list($takelist, $givelist) = separate_givetake(); if ($takelist || $givelist) { - $output .= "<table border=1 cellspacing=0>\n"; + $output .= "<table border=\"1\" cellspacing=\"0\">\n"; for ($i = 0; $i < count($takelist); $i++) { if ($i == 0) { - $output .= "<tr><th colspan=2 $bgcol1>$title1</th></tr>\n"; + $output .= "<tr><th colspan=\"2\" $bgcol1>$title1</th></tr>\n"; } $output .= preg_replace("/^(.+):(.+)$/", "<tr><th>$1</th><td>$2</td></tr>\n", $takelist[$i]); } for ($i = 0; $i < count($givelist); $i++) { if ($i == 0) { - $output .= "<tr><th colspan=2 $bgcol2>$title2</th></tr>\n"; + $output .= "<tr><th colspan=\"2\" $bgcol2>$title2</th></tr>\n"; } $output .= preg_replace("/^(.+):(.+)$/", "<tr><th>$1</th><td>$2</td></tr>\n", $givelist[$i]); } $output .= "</table>\n"; } return $output; } #comment