QR Code 重新導向劫持:看不見的中間人
當你的 QR Code 運作正常時,中間人是看不見的。等到壞掉,為時已晚。理解重新導向模型,是避開它的第一步。
你掃過的每一個動態 QR Code,都涉及一個你從未選擇的第三方。在手機相機和目的網站之間,QR 服務商擁有的一台重新導向伺服器悄悄轉送了請求。大多數使用者完全不會察覺。這就是重點所在。
本文解釋重新導向劫持在實務上看起來的樣子、中間人實際做什麼,以及這件事帶來什麼風險。
重新導向序列
當你掃描一個指向 https://shop.example.com 的靜態 QR 時:
- 相機讀取 QR Code
- 作業系統辨識出它是一個網址
- 瀏覽器開啟
https://shop.example.com
三步。沒有第三方。
當你掃描一個指向同樣目的地的動態 QR 時:
- 相機讀取 QR Code,裡面編碼的是類似
https://qr-provider.com/r/x7n2的內容 - 作業系統開啟這個網址
- qr-provider.com 收到請求、記 log、在自己的資料庫裡查
x7n2 - qr-provider.com 發出 301 或 302 重新導向到
https://shop.example.com - 瀏覽器跟著重新導向,抵達真實目的地
五步。第 3 步多了一個額外的角色 — 你從未同意、從未付費、也看不見的一方。
中間人得到什麼
每一次掃描都會產生一筆伺服器 log 紀錄,內容包含:
- 掃描時間戳
- 掃描端的 IP 位址
- User-agent 字串(裝置、作業系統、瀏覽器)
- Referrer 標頭(掃描端從哪裡來,若適用)
- Accept-Language 標頭(語言偏好)
根據這些資料,服務商可以推斷出:大致的地理位置、裝置類型、作業系統版本,以及整體而言一段時間內的掃描模式。這些會被以「分析」之名行銷給客戶。同時這也是一種對掃描你 Code 的人們的監控 — 而這些人從未同意過。
中間人能做什麼
更換目的地
重新導向目的地住在服務商的資料庫裡。QR 擁有者通常可以透過儀表板編輯它。這會被當作功能販售,對某些情境而言確實如此。但這也意味著 QR Code 已經不再是它看起來的樣子。實體物件寫著「掃描以參觀我們的網站」,但實際行為取決於服務商資料庫今天說了什麼。
停用重新導向
當擁有者的訂閱失效、帳號被關閉,或違反了服務商的服務條款,重新導向可以被移除。QR Code 的每一份印刷本立即失效。使用者掃描後只會看到一般錯誤頁或 404。
插入中介頁
有些服務商會在最後重新導向之前,把動態 QR 掃描導過一個品牌化的中介頁 — 播放廣告、索取同意、蒐集 email。QR 擁有者通常並沒有同意這件事。它是之後才加上去的,隨著服務商越來越積極地變現。
賣掉或弄丟掃描資料
掃描 log 很值錢。它們曾被賣給分析資料掮客、被用來訓練廣告投放模型,而在至少有紀錄的幾起資安事件中,也曾隨著服務商遭入侵而外洩。你的客人掃了一份菜單;現在他們的裝置指紋存在某個資料外洩資料集裡。
為什麼使用者從不察覺
現代瀏覽器會自動跟著重新導向走。除非你有開開發者工具,否則看不到這個中間跳轉。掃描感覺是瞬間完成的,因為重新導向很快(能運作時)。從使用者角度看,動態 QR 的行為跟靜態 QR 完全相同。
直到重新導向伺服器失效為止。那時體驗會急速分道揚鑣 — 但此刻 QR Code 早已印在上千個地方。
資安上的意義
重新導向伺服器是每一個依賴它的 QR Code 的單點失效來源。有三種攻擊面值得考慮:
- 帳號被攻陷。 如果攻擊者取得 QR 擁有者在服務商的帳號,他可以把每一個 QR 都轉向釣魚頁。客人掃描實體 Code 期待看到餐廳菜單,結果落地在餐廳登入頁的憑證收割複本上。
- 服務商被入侵。 如果 QR 服務商本身被攻破,所有流通中的動態 QR 都可能被重新指向攻擊者控制的內容。這不是理論 — 多家 QR-as-a-service 服務商都有過公開的資安事件揭露。
- 服務商端的 DNS 或 TLS 失效。 若重新導向網域無法解析、TLS 憑證過期,依賴它的每個 QR 都會失效。不是惡意行為人 — 只是 QR 擁有者無法控制的常態性營運風險。
靜態 QR Code 沒有任何這些失效模式,因為掃描和目的地之間根本沒有第三方伺服器。
如何檢查你是否正在掃描一個重新導向
使用會在跟隨之前顯示解碼內容的 QR 掃描器 — 我們的 網頁掃描器 就會這麼做。掃描 QR Code 並檢視解碼出來的網址。如果是你真正的目的地,這個 QR 就是靜態的。如果長得像 qrco.de/xyz 或你不認識的短網域,那就是重新導向 — 中間還坐著一個第三方。
替代方案
產生直接編碼你目的地的 QR Code。沒有第三方伺服器、沒有重新導向 log、沒有訂閱。完整比較請見 靜態 vs 動態 QR Code,想了解為何這種中間人模式主宰業界,請見 QR Code 騙局的真相。
或者就直接 產生一個靜態 QR Code,然後不用再擔心了。
準備好製作靜態 QR Code 了嗎?
在瀏覽器中產生一個 — 免註冊、免追蹤、免訂閱。你建立的東西就屬於你。
延伸閱讀
QR Code 騙局的真相:「免費」產生器如何勒索使用者
動態 QR Code 讓服務商在你印出後仍能追蹤、編輯、停用並從你的 Code 上獲利。以下是這套方案的運作方式與避開之道。
靜態 vs 動態 QR Code:每位使用者都該知道的事
一種編碼你的內容;另一種編碼一個重新導向。這個差異決定了你的 QR Code 五年後還能不能用。
QR 訂閱陷阱:服務商如何把你的連結當人質
餌是一張免費 QR Code。鉤是它只會在你付費期間運作。陷阱會在你印出一萬份的那天合上。
5 個紅旗:你的 QR 產生器是個陷阱
五個能把誠實 QR 工具與會在日後向你收租、或停用你 Code 的 dynamic-first 產生器區分開來的訊號。