URLが擬装できる

  • ページ: BugTrack2
  • 投稿者: and?
  • 優先順位: 低
  • 状態: 完了
  • カテゴリー: その他
  • 投稿日: 2005-04-03 (日) 08:31:13
  • バージョン:

メッセージ

例えばこんな感じにすると

[[http://www.google.com:http://www.yahoo.com]]

Googleのように見せかけてYahooに飛ばせます。 先日のエイプリルフールに有効活用させていただきましたが、悪用も可能なのでできれば禁止しておいた方がよいような気がします。

コメント

  • こんにちは :) このように書くと、BugTrack2/51のように見せかけて BugTrack2/50 に飛ばすこともできます。 -- henoheno 2005-04-03 (日) 10:20:32
    [[BugTrack2/51>BugTrack2/50]]
  • 内部のページ名の場合はともかく、外部リンクに対するものに関しては(過去に、先頭の小さなアイコンをつける案も出ています)何かのフィルタを行っても良いですよね。 -- henoheno 2005-04-03 (日) 10:21:11
  • [[スラッシュドット>http://slashdot.jp/]]などでは、外部リンクに対しては example.com:http://example.org/ [example.org] のように、実際にリンクしている先のドメインを[]でくくった文字列を挿入し、読者に注意を促す仕組みがありますね。 -- henoheno 2005-04-03 (日) 10:22:34
    • BugTrack/730と似たような方法(警告画像を表示)でもいいかもしれません。 -- Ratbeta? 2005-04-03 (日) 13:53:48
  • スラド方式に一票。 -- ishii 2005-04-03 (日) 14:10:23
    • 私もスラド式に一票です。 -- okkez 2005-04-03 (日) 17:43:06
    • こんな感じでしょうか*1 -- teanan 2005-04-22 (金) 03:30:57
      cvs diff -u make_link.php 
      Index: make_link.php
      ===================================================================
      RCS file: /cvsroot/pukiwiki/pukiwiki/lib/make_link.php,v
      retrieving revision 1.18
      diff -u -r1.18 make_link.php
      --- make_link.php	2 Apr 2005 03:04:14 -0000	1.18
      +++ make_link.php	21 Apr 2005 18:27:38 -0000
      @@ -369,7 +369,12 @@
      		} else {
      			$rel = ' rel="nofollow"';
      		}
      -		return '<a href="' . $this->name . '"' . $rel . '>' . $this->alias . '</a>';
      +		$parse = parse_url($this->name);
      +		$host = '';
      +		if (preg_match('/^https?/', $parse['scheme'])) {
      +			$host = ' [' . $parse['host'] . '] ';
      +		}
      +		return '<a href="' . $this->name . '"' . $rel . '>' . $this->alias . '</a>' . $host;
      	}
       }
    • super_indexにした方がかっこいいかな (^^; -- teanan 2005-04-22 (金) 03:49:24
      superindex.gif
      -			$host = ' [' . $parse['host'] . '] ';
      +			$host = ' <span class="super_index">[' . $parse['host'] . ']</span> ';
  • ftp:とかmailto:とか他のプロトコルにも同様の対策が必要だと思われます。 -- Ratbeta? 2005-04-22 (金) 19:18:03
  • 何らかの対策の必要性を感じましたので再提案します。super_indexは読み難い場合があるので、ツールチップをつけてみました。また、Ratbeta?さんの指摘にあるよう他のプロトコルの対策を行いました。なお、mailtoについては、メーラーでワンクッションあるものと想定し、対策を行っていません。 -- 2007-08-21 (火) 18:01:39
    make_link.php,v 1.35
    line 349-
     class Link_url extends Link
     {
    (中略)
    line 383-
    	function toString()
    	{
    		if (FALSE) {
    			$rel = '';
    		} else {
    			$rel = ' rel="nofollow"';
    		}
    -		return '<a href="' . $this->name . '"' . $rel . '>' . $this->alias . '</a>';
    +		$parse = parse_url($this->name);
    +		$host = '';
    +		if (preg_match('/^(https?|ftp|news)/', $parse['scheme'])) {
    +			$host = ' <span class="super_index" title="' . $parse['host'] . '">[' . $parse['host'] . ']</span>';
    +		}
    +		return '<a href="' . $this->name . '"' . $rel . '>' . $this->alias . '</a>' . $host;
    	}
    }
  • 定数でオン/オフできるように実装できれば良いなぁと。 -- 2007-08-22 (水) 07:22:58
  • これは関連する別件、ページ間のリンクに対するURLを相対パスにしたいとか、anchor tagを自動的につける対象について、http/https/ftpのようなスキームの定義を一箇所に集約させたいとか、一定長以上のURLを上手に短縮表記したいといった件とあわせて考えてみて下さい。実現は段階的でもいいですが、複数のニーズを頭に入れずにやるとスパゲッティコードが増えるでしょう。そうした関連別件との相互リンクを作るところからやるといいと思いますよ -- henoheno 2007-08-23 (木) 00:40:36


関連案件

  • 要検討
    • BugTrack/438 日本語URIのencode,decode問題
    • BugTrack/490 [PCRE] footnoteにメアドを書くと当該ページが開かなくなる
    • BugTrack/520 リンク名に file: を利用したい
    • BugTrack/610 URL中のIPv6アドレスの扱い
      • BugTrack2/321 IPv6でホストを指定した場合のURLの不適切な扱い
    • BugTrack2/7 URL にブラケットを使ってもいいように。
    • BugTrack2/101 サイト内のページへのリンクにもhost名を含む完全なuriが使われている
    • BugTrack2/213 相対/絶対 URI について($script、get_script_uri等)
    • BugTrack2/247 外部リンクをリダイレクトページ経由にすることで、Refererを消す
    • BugTrack2/250 相対リンクで、意図しないページへのリンクになることがある
  • 参考
  • 未発掘
    • スキームの定義の重複
    • 一定長以上のURLを上手に短縮表記

*1 今のところ、このままコミットするつもりはないです (^^;

添付ファイル: filesuperindex.gif 414件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-08-23 (木) 00:41:11
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.430 sec.

OSDN