エラーメッセージ用の定数 xxx_USAGE の中にエスケープされていないものがある

  • ページ: BugTrack2
  • 投稿者: 名無しさん
  • 優先順位: 重要
  • 状態: 提案
  • カテゴリー: 本体バグ
  • 投稿日: 2007-11-10 (土) 13:20:55
  • バージョン:

メッセージ

プラグインでエラーの発生時にUSAGE を返すものがありますが、& とエスケープせずに&をそのまま使っている物があります。

cvs:plugin/color.inc.php (1.22)

define('PLUGIN_COLOR_USAGE', '&color(foreground[,background]){text};');

cvs:plugin/edit.inc.php (1.46)

function plugin_edit_inline()
{
	static $usage = '&edit(pagename#anchor[[,noicon],nolabel])[{label}];';

cvs:plugin/ruby.inc.php (1.6)

define('PLUGIN_RUBY_USAGE', '&ruby(pronunciation){words};');

cvs:plugin/size.inc.php (1.10)

define('PLUGIN_SIZE_USAGE', '&size(px){Text you want to change};');

追伸: edit.inc.php は、ついでにBugTrack2/260の件もお願いします。


  • チェックありがとうございます。それぞれ修正 + αしておきました。可能な範囲でご確認をお願いします。 -- henoheno 2007-11-11 (日) 22:48:49
  • size.inc.php (1.11) にちょっとした不具合があります。正規表現パターンが、
    define('PLUGIN_SIZE_REGEX', '/^(?:([0-9]+(?:px)?)|([0-9]+)%)$/i');
    となっていて、キャプチャする内容に'px' を含めているので、
    &size(12px){word}; と書いた時の出力が、'<span style="font-size:12pxpx;...(省略)' とpx が2重に出力されてしまいます。 -- 2007-11-12 (月) 20:18:47
  • 確認ありがとうございます。こんなんでいかがでしょうか。別件で、考慮し忘れていたintval()なども追加し、もう少々柔らかくしてみました -- henoheno 2007-11-14 (水) 00:00:19
  • え~と、またsize プラグインの正規表現に疑問が・・・。
    define('PLUGIN_SIZE_REGEX',
    	'/^(?:' .
    	'([0-9]+(?:\.[0-9]+)?)(?: *px)?' . '|' .	// Pixel (default)
    	'([0-9.]+(?:\.[0-9]+)?) *%' .				// Percentage
    	')$/i');
    パーセントの部分が「0~9 か.(ピリオド)が1つ以上続いた後に・・・」となっているので、&size(120.45.87..01%){word}; とピリオドをいくつ書いてもOK になっています。
    intval() しているので、たいした問題では無いかもしれませんが。 -- 2007-11-14 (水) 23:47:00
  • たびたびレビューいただきありがとうございます。それはピリオドの入力を認めるコードを遷移させていた時の名残です。(?:\.[0-9]+)? に集中していて左側を見ていませんでした。比較対照しやすい形に直しておいて良かった (^^; -- henoheno 2007-11-15 (木) 23:31:39
  • (大文字小文字無視の)USAGE でしか検索してなかったので、見逃してた分を挙げます。 -- 2007-11-16 (金) 19:03:53
    2007-11-16 (金) 00:00:00 のCVS版
    plugin\counter.inc.php(31):		return '&counter([total|today|yesterday]);';
    
    plugin\dump.inc.php(85):		$msg = 'dump & restore';
    
    plugin\new.inc.php(35):		if (func_num_args() > 2) return '&new([nodate]){date};';
    plugin\new.inc.php(39):		if ($timestamp === -1) return '&new([nodate]){date}: Invalid date string;';
    plugin\new.inc.php(63):				return '&new(pagename/[,nolink]): No such pages;';
    plugin\new.inc.php(70):				return '&new(pagename[,nolink]): No such page;';
    
    plugin\newpage.inc.php(54):			'?cmd=read&page=' . $r_page . '&refer=' . $r_refer);
    
    plugin\online.inc.php(58):			$error = '&online: ' . $error . ';';
    • dump, newpage プラグインは、BugTrack2/260 も・・・(略) -- 2007-11-16 (金) 19:23:52
    • 修正(header() などは生データを扱うので、変換すると正しい場所に飛ばないです・・・) -- 2009-06-16 (火) 23:59:42
  • 追加(USAGE ですらないですが、とりあえずココに) -- 2009-06-16 (火) 23:59:42
    plugin\spam.inc.php(31):		'<a href="'. $script . '&mode=pages' . '">Pages</a>' . "\n"
    plugin\spam.inc.php(45):	$script  = get_script_uri() . '?plugin=spam&mode=pages';


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

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

OSDN