短縮リンクを読み込まずにその行き先を確認するには、ヘッダーだけを取得してそこで止めよう:
curl -sI https://s.elido.me/ab12cd
レスポンスの最初の行はステータスであり、Location:が本当の遷移先だ。遷移先のページは何もダウンロードされず、スクリプトも実行されないため、何かを決める前にドメインを確認できる。
最初にはっきりさせておきたいことがある:これは匿名の行為ではない。短縮リンクを解決するということは、シャートナーにその解決を依頼することであり、シャートナーはその他のリクエストと同じようにこの要求も記録する。プレビューは行き先を見せてくれるが、見たという事実を隠してはくれない。
もしあなたがこの逆の立場、つまりリンクを確認する側ではなく作成する側にいるなら、URL短縮サービスは安全かで、そもそもこの形式が疑いを招きやすい理由を解説している。
ヘッダーを読む
覚えておくと便利なフラグ:
curl -sI https://s.elido.me/ab12cd # first hop only
curl -sIL https://s.elido.me/ab12cd | grep -Ei '^HTTP|^location' # the whole chain
-IはHEADリクエストを送信し、-sは進捗表示を抑制し、-Lはリダイレクトに従う。-Lを付けなければ1ホップだけが表示され、これがより安全なデフォルトだ:読んで、判断し、それから進む。
チェーンは思われている以上に重要だ。信頼できるドメインから始まるリンクでも、着地するまでにさらに2つを経由することがあり、実際にたどり着く先は最後のものだけだ。恒久的なリダイレクトと一時的なリダイレクトの違い、そしてそれがブラウザによる応答のキャッシュを左右するという点を知りたければ、ステータスコードの意味はRFC 9110に定義されている。
curlのないWindowsでは、Invoke-WebRequest -Method Head -MaximumRedirection 0が同じヘッダーを表示し、構文の癖についてはPowerShellの解説記事で扱っている。
その他の3つの方法と、それぞれのコスト
プロバイダーのプレビュー機能。 一部の短縮サービスは従来、コードの後ろに+や~を付けるサフィックスをサポートしており、これによりリダイレクトの代わりに情報ページが表示される。これが存在する場合は最もクリーンな選択肢だ。プロバイダーが自らのリンクについての問い合わせに答えているだけだからだ。存在しない場合、そのサフィックスは単に実在しないスラッグの一部になり、404が返ってくるが、それはそれで確認する方法として悪くない。
展開サイト。 貼り付けるだけで、サイトがリンクを取得してくれる。便利だが、理解しておくべきことがある:そのサイトは、あなたに送られたリンク、それが解決する遷移先、そしてあなたがそれを警戒していたという事実まで知ることになる。マーケティングリンクであれば何の問題もない。だが招待トークンやドキュメントID、参照番号がパスに含まれるリンクの場合、本来非公開であるはずのものを第三者に渡してしまったことになる。
評判照会。 Google Safe Browsingのサイトステータスツールは、ドメインに既知の悪質な記録があるかどうかを教えてくれる。役立つツールだが、その回答は正しく読む必要がある:これが示すのは既知の問題が存在しないということであり、安全であることの証明ではない。新しいフィッシングドメインは、誰かに報告されるまではクリーンな状態のままだ。
展開してもわからないこと
遷移先のドメインは1つのシグナルにすぎず、正しく見せかけることは容易だ。似せたドメイン、正規のサイト内にある改ざんされたページ、データセンターのIPとスマートフォンとで挙動を変えるリダイレクトは、いずれも上記のチェックをすり抜けてしまう。
どんなツールよりも役立つ3つの習慣がある:
- 遷移先を送信者の主張と照らし合わせよう。先週登録されたばかりのドメインに解決する配送業者のメッセージには、それだけで答えが出ている。
- 予期せず届いたリンクには、遷移先が何であれ、より慎重になろう。
- QRコードは、まったく読み取ることのできない短縮リンクだと考えよう。実際そのとおりだからだ。QRコードは安全かでは、この問題の「スキャンしてから確認する」版を扱っている。
リンクを作成する側の場合
ここまでの内容はすべて、公開するドメインがスラッグよりも重要である理由を示している。go.yourbrand.comからのリンクを確認する受信者は、そのドメインだけで誰が送ったのかが分かる。共有の公開短縮サービス上のリンクは何も伝えず、他のすべてのリンクと見分けがつかない。
これは、リンクがSlackやTeamsでブロックされるかどうかや、メールフィルターを通過できるかどうかを左右するのと同じ評判の論理だ。信頼できる短縮サービスが作成時に遷移先をスキャンし、その後も再スキャンを行うのも同じ理由による。クリーンなURLでも、リンク作成後に悪質化することがあるからだ。詳細はURL短縮サービスのセキュリティチェックリストにまとめている。
見覚えのあるドメインで公開するための設定は5分で終わる。無料プランでリンクを作成し、自分のドメインを設定すれば、受信者による安全確認のすべてがあなたにとって有利な結果を返すようになる。
コーナーストーン記事を読む
本稿はtutorialsクラスターに属する。URL短縮サービスの仕組みでは、ここで扱っているリダイレクトの仕組みを解説しており、URL短縮サービスは安全かでは信頼性の問題を扱い、リダイレクトの種類ではそのヘッダー内の各ステータスコードの意味を扱っている。
ブログ内の関連記事
よくある質問
短縮URLを開かずに、その行き先を確認するにはどうすればよいですか。
HEADリクエストを送信し、Locationヘッダーを読もう:curl -sI https://s.elido.me/ab12cd を実行すると、ページをダウンロードすることなくステータス行と遷移先が表示される。それでもシャートナーは何かが問い合わせたことを記録するため、これは遷移先を見る方法であって、自分の存在を隠す方法ではない。
ブラウザで短縮リンクをプレビューすることはできますか。
一部のプロバイダーは、コードの後ろに + や ~ を付けるプレビュー用サフィックスをサポートしており、これによりリダイレクトの代わりに情報ページが表示される。これはプロバイダーがその機能を実装している場合にのみ機能するため、サフィックスを付けても単にリダイレクトされてしまう場合は、そのプロバイダーがプレビューに対応していない印だと考えよう。
URL展開サイトは安全に使えますか。
たしかに機能するが、貼り付けた内容はすべてそのサイトに見られてしまう。サイトはあなたに送られたリンクを把握し、通常は自分のサーバーからそれを取得するため、遷移先もログに記録される。一般的なマーケティングリンクであればそれは重要ではないが、パスにトークンや識別子を含むリンクの場合、それは情報漏洩になる。
短縮リンクをプレビューすることはクリックとしてカウントされますか。
通常はカウントされる。HEADリクエストや展開サイトによるフェッチもリダイレクトに到達し、他のアクセスと同様に記録されるため、分析画面には見慣れない場所からの追加のクリックが表示されることがある。シャートナーに問い合わせずに短縮リンクを解決する方法はなく、その問い合わせ自体が記録される。
遷移先が危険かどうかはどうすれば分かりますか。
展開して分かるのはどこへ行くかであって、それが安全かどうかではない。Google Safe Browsingのような評判照会サービスでドメインを確認し、送信者の主張と実際のドメインが一致しない場合は疑おう。評判に問題がないという結果は安全である証明ではなく、単に既知の悪質な記録が存在しないというだけのことだ。
短縮リンクが別の短縮リンクを指している場合はどうなりますか。
リダイレクトチェーンはよくあることで、信頼できるドメインから始まるチェーンでもどこへ行き着くか分からないため、各ホップを確認する必要がある。curl -sIL でチェーン全体をたどり、最初の1つだけでなくすべてのLocationヘッダーを読もう。
Elidoを試す
URLを貼り付けて短縮リンクを取得
登録不要。リンクは30日間有効。永久に保存するには登録してください。
Free、登録不要 · 1日あたり2件