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://www.google.com]]
と記述した場合は InterWikiName になるというのが矛盾してい...
*** 実装 [#s605d773]
- [[commit:8b227c3c5859320685cd103568cf7dafac86bb57]]
----
-こんな感じでしょうか? -- [[teanan]] &new{2005-02-15 (火)...
-- &ref(./make_link.php.bracket_url.diff.1);
--あう、バグありました ;( -- [[teanan]] &new{2005-02-15 (...
--再掲載。 -- [[teanan]] &new{2005-02-15 (火) 19:14:08};
-これはInterWikiの内部的なデフォルト値として http (raw) ...
--なるほど、そういうアプローチがありますね。上のはURLsの...
lib/make_link.php : 773行目付近
}
+ $interwikinames['http'] = array('http:', 'raw');
+ $interwikinames['https'] = array('https:', 'raw');
if (! isset($interwikinames[$name])) return FALSE;
--けど、全角文字が指定された場合でもリンクになってしまう...
-- つまり、(現行はPukiWiki個別のエンコーディングに左右さ...
-- まてよ、それを悪用できるXSS脆弱性がないか? 頭が回らな...
-- こんな感じにすると逃げられますね。 -- [[teanan]] &new{...
+ $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('/(?:\/\/|\.\.?\/)[!~*\'();\/?:\@&=+\...
+ return FALSE; // Invalid URL
+ }
+ break;
-個人的には最初のURLsの正規表現に含む形の方がスマートなよ...
-「エイリアスを省略可能にする」というアプローチだと、こん...
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\/\@\$()!?&%#:;...
- これに対応してほしいです。この前ほぇっ!?となりました...
- 対応しました。teananさんのパッチ "make_link.php.bracket...
#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://www.google.com]]
と記述した場合は InterWikiName になるというのが矛盾してい...
*** 実装 [#s605d773]
- [[commit:8b227c3c5859320685cd103568cf7dafac86bb57]]
----
-こんな感じでしょうか? -- [[teanan]] &new{2005-02-15 (火)...
-- &ref(./make_link.php.bracket_url.diff.1);
--あう、バグありました ;( -- [[teanan]] &new{2005-02-15 (...
--再掲載。 -- [[teanan]] &new{2005-02-15 (火) 19:14:08};
-これはInterWikiの内部的なデフォルト値として http (raw) ...
--なるほど、そういうアプローチがありますね。上のはURLsの...
lib/make_link.php : 773行目付近
}
+ $interwikinames['http'] = array('http:', 'raw');
+ $interwikinames['https'] = array('https:', 'raw');
if (! isset($interwikinames[$name])) return FALSE;
--けど、全角文字が指定された場合でもリンクになってしまう...
-- つまり、(現行はPukiWiki個別のエンコーディングに左右さ...
-- まてよ、それを悪用できるXSS脆弱性がないか? 頭が回らな...
-- こんな感じにすると逃げられますね。 -- [[teanan]] &new{...
+ $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('/(?:\/\/|\.\.?\/)[!~*\'();\/?:\@&=+\...
+ return FALSE; // Invalid URL
+ }
+ break;
-個人的には最初のURLsの正規表現に含む形の方がスマートなよ...
-「エイリアスを省略可能にする」というアプローチだと、こん...
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\/\@\$()!?&%#:;...
- これに対応してほしいです。この前ほぇっ!?となりました...
- 対応しました。teananさんのパッチ "make_link.php.bracket...
#comment
ページ名: