短縮URL提供サービスまとめ

最近Twitterを使い始めたら、短縮URLにお目にかかる機会が多くなった。信頼できるユーザの短縮URLであれば特に気にしないのだが、信頼してもよいか判断が難しいユーザの短縮URLはアクセスするかどうか、躊躇してしまう。フィッシングサイトや攻撃コードが仕込まれたサイトへの誘導にも悪用されていることを考慮すると、短縮URLから転送されるURLが事前に確認できればいいなーと思う。例えば、TinyURL.comであれば、Preview機能を提供している。他の短縮URL提供サービスでもPreview機能を提供していないかと考え、Twitterが利用している短縮URL提供サービスをざっと調べてみた。

短縮URLサービス 登録コンテンツへの誘導 登録コンテンツの URL 確認手段
TinyURL.com HTTP レスポンスコード 301 あり
bit.ly HTTP レスポンスコード 301 あり
RubyURL HTTP レスポンスコード 301 なし
myurl.in JavaScript window.location.href なし
TweetBurner HTTP レスポンスコード 301 なし
BIND.TO beta HTTP レスポンスコード 301,302 なし
ur1 Generator HTTP レスポンスコード 301 なし
Ow.ly URL Shortener iframeによる登録コンテンツ埋め込み なし
tr.im your URLs HTTP レスポンスコード 301 なし
FriendFeed HTTP レスポンスコード 301 なし
Twit Robot HTTP レスポンスコード 301,302 なし
is.gd HTTP レスポンスコード 301 あり
l.pr HTTP レスポンスコード 302 なし
Cligs HTTP レスポンスコード 301 なし
PING.fm HTML meta タグ なし

ざっと調べてみた結果、調査した15サイトのうち、2サイトしかPreview機能(ツールを含む)が提供していなかった。こうなると、リダイレクト先の確認については、ユーザが工夫するしかなさそうだ。

短縮URL提供サービスにおける登録コンテンツへの誘導手段は、3種類*1あった。

  1. HTTPレスポンスコード*2
    • 301 Moved Permanently*3
    • 302 Found*4
  2. HTML metaタグ
  3. JavaScript

2については、Firefox Add-onのRefreshBlockerでユーザの介入なしでのりダイレクトを防止し、リダイレクト先を確認できる。またmetaタグでのリダイレクトを防止するだけであれば、Firefox の accessibility.blockautorefreshを有効にするだけでよい。3については、Firefox + NoScript であれば、ユーザ介入なしのリダイレクトの防止・確認が可能である。1だけはブラウザおよびブラウザの拡張機能だけでは、リダイレクト先を確認できなさそうだ。手軽に対応するならば、wgetが利用できそうだ。利便性は落ちてしまうが、安全性を求めるのであれば、この手段を利用してもよいか。

bash-3.2$ wget -O - -S --max-redirect=0 http://bit.ly/rXYm5 > /dev/null
--2009-08-02 20:04:34--  http://bit.ly/rXYm5
Resolving bit.ly... 168.143.174.25, 168.143.174.29, 128.121.254.129, ...
Connecting to bit.ly|168.143.174.25|:80... connected.
HTTP request sent, awaiting response...
  HTTP/1.1 301 Moved
  Server: nginx/0.7.42
  Date: Sun, 02 Aug 2009 11:04:45 GMT
  Content-Type: text/html; charset=utf-8
  Connection: keep-alive
  Location: http://transnatic.com/viewtopic.php?f=3&t=10
  MIME-Version: 1.0
  Content-Length: 306
Location: http://transnatic.com/viewtopic.php?f=3&t=10 [following]
0 redirections exceeded.

上記は、Cygwin + wget 1.11.4 でのりダイレクト先を確認した例である。ここで例示した短縮URLTwitterの投稿に記載されていたもの。無作為に選択した。

--max-redirect=0オプションを設定することで、HTTPレスポンスコードによるリダイレクトを実行しない。また、リダイレクト先を確認するだけであるため、取得コンテンツをファイルに出力する必要がない。そのため、-O - で取得コンテンツを標準出力に表示し、その出力を /dev/nullにリダイレクトしている。

Twitterでリダイレクト先を確認する方法を用意してくれると嬉しいな。


[2009/08/08 追記]
同じように短縮URLまとめを作成されている方がいました。
URL短縮まとめサイト « azunyan.blog
この短縮URLまとめで紹介している、Untinyがいい!短縮URLをインプットし、登録されているオリジナルURLをアウトプットとして返すウェブサービスFirefox 用 Add-on,UntinyFox 2.0Bookmarklet,Untiny Bookmarkletも提供している。このウェブサービスを使えば、短縮URLがきても怖くない!

【収集用メールアドレス】:q1w2e3w2@gmail.com