*URL にブラケットを使ってもいいように。 [#i3429528]

-ページ: [[BugTrack2]]
-投稿者: [[kak]]
-優先順位: 低
-状態: 提案
-カテゴリー: 本体新機能
-投稿日: 2005-02-15 (火) 18:14:34
-バージョン: 

**メッセージ [#yadd2e32]
例えば 
 [[http://www.google.com]]
という記法もあり。としたほうが都合がよいかと思います。

 [[Google>http://www.google.com]]
のように記述した場合は http は InterWikiName とならないのに(http という InterWikiName があっても無視する)、
 [[http://www.google.com]]
と記述した場合は InterWikiName になるというのが矛盾しているように感じました。
----
-こんな感じでしょうか? -- [[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とか、国際化ドメイン名を表現できるということですか :) -- [[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;


#comment

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.061 sec.

SourceForge