BugTrack/2007
の編集
Top
/
BugTrack
/
2007
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
*URL にブラケットを使ってもいいように。 [#i3429528] -ページ: [[BugTrack2]] -投稿者: [[kak]] -優先順位: 低 -状態: 完了 -カテゴリー: 本体新機能 -投稿日: 2005-02-15 (火) 18:14:34 -バージョン: 1.4.5 -リリース予定バージョン: 1.5.1 **メッセージ [#yadd2e32] 例えば [[http://www.google.com]] という記法もあり。としたほうが都合がよいかと思います。 [[Google>http://www.google.com]] のように記述した場合は http は InterWikiName とならないのに(http という InterWikiName があっても無視する)、 [[http://www.google.com]] と記述した場合は InterWikiName になるというのが矛盾しているように感じました。 *** 実装 [#s605d773] - [[commit:8b227c3c5859320685cd103568cf7dafac86bb57]] ---- -こんな感じでしょうか? -- [[teanan]] &new{2005-02-15 (火) 19:01:00}; -- &ref(./make_link.php.bracket_url.diff.1); --あう、バグありました ;( -- [[teanan]] &new{2005-02-15 (火) 19:07:00}; --再掲載。 -- [[teanan]] &new{2005-02-15 (火) 19:14:08}; -これはInterWikiの内部的なデフォルト値として http (raw) などがあると良い、という話ではないでせうか -- [[henoheno]] &new{2005-02-15 (火) 22:05:37}; --なるほど、そういうアプローチがありますね。上のはURLsの方に寄せたのですが、InterWikiにした方が簡単にできました。 -- [[teanan]] &new{2005-02-16 (水) 02:22:43}; lib/make_link.php : 773行目付近 } + $interwikinames['http'] = array('http:', 'raw'); + $interwikinames['https'] = array('https:', 'raw'); if (! isset($interwikinames[$name])) return FALSE; --けど、全角文字が指定された場合でもリンクになってしまう気がする・・・ -- [[teanan]] &new{2005-02-16 (水) 02:27:25}; -- つまり、(現行はPukiWiki個別のエンコーディングに左右されますが)日本語交じりの異常なURLとか、[[国際化ドメイン名>IDN]]を表現できるということですか :) -- [[henoheno]] &new{2005-02-16 (水) 22:23:52}; -- まてよ、それを悪用できるXSS脆弱性がないか? 頭が回らないので代わりにメモメモ。 -- [[henoheno]] &new{2005-02-16 (水) 23:51:59}; -- こんな感じにすると逃げられますね。 -- [[teanan]] &new{2005-02-17 (木) 02:36:19}; + $interwikinames['http'] = array('http:', 'url'); + $interwikinames['https'] = array('https:', 'url'); if (! isset($interwikinames[$name])) return FALSE; list($url, $opt) = $interwikinames[$name]; // Encoding switch ($opt) { + case 'url': + if (!preg_match('/(?:\/\/|\.\.?\/)[!~*\'();\/?:\@&=+\$,%#\w.-]*$/',$param)) { + return FALSE; // Invalid URL + } + break; -個人的には最初のURLsの正規表現に含む形の方がスマートなような気がしますが・・・ -- [[teanan]] &new{2005-03-07 (月) 02:16:15}; -「エイリアスを省略可能にする」というアプローチだと、こんな感じでしょうか。 -- &new{2005-03-09 (水) 09:13:54}; diff -u -r1.17 make_link.php --- lib/make_link.php 5 Feb 2005 03:40:13 -0000 1.17 +++ lib/make_link.php 3 Mar 2005 07:11:56 -0000 @@ -336,8 +336,10 @@ $s1 = $this->start + 1; return <<<EOD (\[\[ # (1) open bracket - ((?:(?!\]\]).)+) # (2) alias - (?:>|:) + (?: + ((?:(?!\]\]).)+) # (2) alias + (?:>|:) + )? )? ( # (3) url (?:(?:https?|ftp|news):\/\/|mailto:)[\w\/\@\$()!?&%#:;.,~'=*+-]+ - これに対応してほしいです。この前ほぇっ!?となりました。表示がまともに見える分たちが悪いです。 [[http://google.com]]。 -- [[tokkuri]] &new{2006-05-24 (水) 11:33:12}; - 対応しました。teananさんのパッチ "make_link.php.bracket_url.diff.1" をそのまま取り込んでいます -- [[umorigu]] &new{2016-02-05 (金) 23:03:40}; #comment
タイムスタンプを変更しない
*URL にブラケットを使ってもいいように。 [#i3429528] -ページ: [[BugTrack2]] -投稿者: [[kak]] -優先順位: 低 -状態: 完了 -カテゴリー: 本体新機能 -投稿日: 2005-02-15 (火) 18:14:34 -バージョン: 1.4.5 -リリース予定バージョン: 1.5.1 **メッセージ [#yadd2e32] 例えば [[http://www.google.com]] という記法もあり。としたほうが都合がよいかと思います。 [[Google>http://www.google.com]] のように記述した場合は http は InterWikiName とならないのに(http という InterWikiName があっても無視する)、 [[http://www.google.com]] と記述した場合は InterWikiName になるというのが矛盾しているように感じました。 *** 実装 [#s605d773] - [[commit:8b227c3c5859320685cd103568cf7dafac86bb57]] ---- -こんな感じでしょうか? -- [[teanan]] &new{2005-02-15 (火) 19:01:00}; -- &ref(./make_link.php.bracket_url.diff.1); --あう、バグありました ;( -- [[teanan]] &new{2005-02-15 (火) 19:07:00}; --再掲載。 -- [[teanan]] &new{2005-02-15 (火) 19:14:08}; -これはInterWikiの内部的なデフォルト値として http (raw) などがあると良い、という話ではないでせうか -- [[henoheno]] &new{2005-02-15 (火) 22:05:37}; --なるほど、そういうアプローチがありますね。上のはURLsの方に寄せたのですが、InterWikiにした方が簡単にできました。 -- [[teanan]] &new{2005-02-16 (水) 02:22:43}; lib/make_link.php : 773行目付近 } + $interwikinames['http'] = array('http:', 'raw'); + $interwikinames['https'] = array('https:', 'raw'); if (! isset($interwikinames[$name])) return FALSE; --けど、全角文字が指定された場合でもリンクになってしまう気がする・・・ -- [[teanan]] &new{2005-02-16 (水) 02:27:25}; -- つまり、(現行はPukiWiki個別のエンコーディングに左右されますが)日本語交じりの異常なURLとか、[[国際化ドメイン名>IDN]]を表現できるということですか :) -- [[henoheno]] &new{2005-02-16 (水) 22:23:52}; -- まてよ、それを悪用できるXSS脆弱性がないか? 頭が回らないので代わりにメモメモ。 -- [[henoheno]] &new{2005-02-16 (水) 23:51:59}; -- こんな感じにすると逃げられますね。 -- [[teanan]] &new{2005-02-17 (木) 02:36:19}; + $interwikinames['http'] = array('http:', 'url'); + $interwikinames['https'] = array('https:', 'url'); if (! isset($interwikinames[$name])) return FALSE; list($url, $opt) = $interwikinames[$name]; // Encoding switch ($opt) { + case 'url': + if (!preg_match('/(?:\/\/|\.\.?\/)[!~*\'();\/?:\@&=+\$,%#\w.-]*$/',$param)) { + return FALSE; // Invalid URL + } + break; -個人的には最初のURLsの正規表現に含む形の方がスマートなような気がしますが・・・ -- [[teanan]] &new{2005-03-07 (月) 02:16:15}; -「エイリアスを省略可能にする」というアプローチだと、こんな感じでしょうか。 -- &new{2005-03-09 (水) 09:13:54}; diff -u -r1.17 make_link.php --- lib/make_link.php 5 Feb 2005 03:40:13 -0000 1.17 +++ lib/make_link.php 3 Mar 2005 07:11:56 -0000 @@ -336,8 +336,10 @@ $s1 = $this->start + 1; return <<<EOD (\[\[ # (1) open bracket - ((?:(?!\]\]).)+) # (2) alias - (?:>|:) + (?: + ((?:(?!\]\]).)+) # (2) alias + (?:>|:) + )? )? ( # (3) url (?:(?:https?|ftp|news):\/\/|mailto:)[\w\/\@\$()!?&%#:;.,~'=*+-]+ - これに対応してほしいです。この前ほぇっ!?となりました。表示がまともに見える分たちが悪いです。 [[http://google.com]]。 -- [[tokkuri]] &new{2006-05-24 (水) 11:33:12}; - 対応しました。teananさんのパッチ "make_link.php.bracket_url.diff.1" をそのまま取り込んでいます -- [[umorigu]] &new{2016-02-05 (金) 23:03:40}; #comment
テキスト整形のルールを表示する
添付ファイル:
make_link.php.bracket_url.diff.1
1167件
[
詳細
]
make_link.php.bracket_url.diff
658件
[
詳細
]