サマリ | コレクター御用達トレードリスト管理プラグイン |
---|---|
リビジョン | 1.0 |
対応バージョン | 1.4.2 |
投稿者 | Nekyo |
投稿日 | 2004-02-25 (WED) 00:55:08 |
自ページ内の一覧と個数から管理された在庫情報から、探しているものと提供可能なものに振り分けてテーブルに展開してトレードリストを作成します。
自分で欲しいから作りました。
RSSで、トレードリストを他のサイトに配信することも可能です。
http://nekyo.hp.infoseek.co.jp/ → IsWeb/tradelist を選択して下さい。
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; }