toolfree

短網址還原

展開 bit.ly、t.co、tinyurl 等短網址,在不點開的情況下看到完整目的地,以及中間經過的每一次轉址。

這個工具需要伺服器。瀏覽器不被允許在不跟著跳轉的情況下讀取轉址結果,所以由我們的伺服器代為追蹤並回報。只有你貼上的網址會被送出,不會被保存,另一端的網頁內容也不會被下載。

這個工具做什麼

短網址本身什麼都沒告訴你。bit.ly/3xKp2Qm 不論指向新聞、購物網站,還是一個想騙走你密碼的頁面,看起來都一模一樣。把它貼到上面,這裡會代你追蹤下去,列出它經過的每一個位址與最後的落點——而你的瀏覽器一次都不必真的造訪。

中間的路徑和目的地同樣重要。一個連結若在抵達之前繞過四個不同網域,行為就和直接跳過去的連結不一樣;而這件事在你直接點下去的時候是看不到的。

為什麼瀏覽器做不到

本站其他工具都完全在你的瀏覽器裡執行,只有這一個不行,原因值得了解。

當網頁請求一個網址並要求瀏覽器不要跟著轉址時,拿回來的是規範所稱的「不透明」回應:一個封起來的物件,讀不到狀態碼、讀不到標頭,也讀不到目的地。而如果你改讓瀏覽器跟著轉址,你就已經造訪了那個連結——那正是你原本想避免的事。

這道限制不是疏漏。少了它,你打開的任何一個網頁都能把你的瀏覽器當成入口,悄悄探測你家網路上的每一個位址。所以這件事只能在瀏覽器以外的地方做,在這裡就是由我們的伺服器代為執行,再把看到的結果回報給你。

什麼會被送出,什麼不會

只有你貼上的網址。它只用來發出請求,不會被寫進我們的任何紀錄或資料庫。

另一端的網頁內容完全不會被下載——HTML 不會,圖片不會,什麼都不會。伺服器只詢問每個位址的狀態,並讀取指出下一站的 Location 標頭。因此目的地網站會看到一個請求抵達,但除了一個數字和一個位址之外,沒有任何東西回到這裡。

這裡看不到的轉址

追蹤路徑指的是追蹤 HTTP 轉址——伺服器回傳的 301302307308。有些連結的轉址則藏在網頁裡面:

這三種情況下,這裡的路徑會停在那個藏著機關的頁面,而不是最終位址。這件事本身就是訊號:一個短網址服務若停在陌生網域並回傳 200 而不是繼續轉址,就做了單純的短網址服務不需要做的事。

連結也可能是因人而異的。有些服務會依國家、裝置或時段送出不同的目的地。我們的伺服器位在資料中心而不是手機上,所以一個專門對行動裝置顯示某個結果、對其他人顯示另一個結果的連結,你在這裡看到的會是後者。

路徑中會出現的狀態碼

代碼含義
301永久移轉——連結有了新家時的標準轉址
302暫時轉址,也是多數短網址服務實際使用的
303改看其他資源,通常出現在表單送出之後
307暫時轉址,並保留原本的請求方法
308永久轉址,並保留原本的請求方法
200路徑的終點:這個位址直接回應了,沒有再往前送
404什麼都沒有。過期的短網址常落在這裡
403 / 405該位址拒絕了請求,有時是因為它擋掉自動檢查,而不是連結失效

不會被展開的位址

這裡只追蹤公開的網路位址。如果一個連結——或它中間任何一次轉址——指向內部網路,追蹤會就此停下並告訴你,而不會去連。這包括 127.0.0.1 這類回送位址、192.168.x.x10.x.x.x 等私有範圍、雲端服務用來存放機器憑證的 169.254.169.254 這類鏈路本地位址,以及只在內部網路才解析得到的名稱。

短網址指向這些位址不會是失誤,而是有人想利用公開工具去碰他自己碰不到的地方。非網頁的協定、指定連接埠的連結,以及指回本站的連結,也基於同樣理由一律拒絕。

短網址不是唯一的把戲

展開連結能告訴你它去哪裡,但不能告訴你那裡安全。拿到位址後有兩件事值得檢查: