·9 分鐘閱讀·drrop.cc

為什麼自己生 QR code 比第三方產生器安全?4 個你沒想過的風險

多數線上 QR 產生器把你的網址送到伺服器算 QR,過程中 IP / 內容 / 時間戳被收集。本文拆解 4 個風險 + 介紹 client-side QR 工具。

你在 Google 搜「QR code 產生器」,點進去任一個 — 輸入網址 → 按下「生成」 → 拿到 QR 圖。看似簡單、無害。

但你有沒有想過:伺服器在這 1 秒內看到了什麼?多數線上 QR 工具會把你的內容(網址、Wi-Fi 密碼、聯絡資訊)送到他們的後端算 QR — 過程中你的 IP、時間戳、產生內容 全進他們的 log。

本文拆解 4 個被忽略的隱私風險,介紹 client-side(瀏覽器內算) QR 工具的選擇。

風險 1:你的網址 / 內容被伺服器收集

server-side QR 產生器的流程

  1. 你輸入網址(或任何 QR 內容)
  2. 瀏覽器 POST 到 server /api/generate-qr
  3. server 用後端 library 算 QR 矩陣 + render PNG
  4. server 回傳 PNG 給瀏覽器
  5. 你下載

過程中 server 看到

  • 你的完整 QR 內容(網址 / Wi-Fi 密碼 / 聯絡資訊 / 任何文字)
  • 你的 IP 地址(用於 rate limit + analytics)
  • timestamp + User-Agent
  • 多數服務還會 store 這些資料用於「最近產生過的 QR」功能

對「我要把 Wi-Fi 密碼變 QR 給訪客」這種場景 — 你的 Wi-Fi 密碼進了第三方服務的 log

風險 2:QR 圖檔有 watermark 或廣告 inject

很多免費 QR 服務的商業模式是廣告 / 升級付費版。免費版常見手法

  • QR 中央放小 logo(廣告自家品牌)
  • 圖檔下方加 watermark 文字
  • 解析度限制低,要付費版才高
  • 限制每天產生次數,誘導註冊

對個人臨時用 OK,但印刷品 / 商業用 — watermark 影響專業感。

風險 3:DNS / 中間人攔截

server-side QR 流程經過:

  1. 你 → 第三方 server(QR 服務)
  2. 第三方 server 處理
  3. 第三方 server → 你

如果第三方 server 的 DNS / 路由被劫持 → 攻擊者可以:

  • 攔截你送出的內容(譬如你要 QR 化的 Wi-Fi 密碼)
  • 回傳「modified QR」(譬如把網址改成釣魚站)

對 client-side QR(純瀏覽器內 JS 算):沒有「送出」這個動作 — 攻擊者沒有攔截點。

風險 4:服務消失你的「歷史 QR」也消失

某些 server-side QR 服務提供「我的 QR」dashboard — 你產過的 QR 都列出來。

聽起來方便,但:

  • 服務倒閉 → 你的 QR 紀錄消失
  • 服務被駭 → 你的 QR 內容被外洩(包含 Wi-Fi 密碼、私人聯絡資訊)
  • 服務被收購 → 條款改變,你的資料可能變他們的「資產」

對長期儲存 / 多份 QR 管理場景 — 自己存比較穩。

4 種 QR 產生器類型對比

類型例子隱私速度客製化
Server-side 大型服務QR Code Generator、Beaconstac✗ 內容傳 server高(logo / 顏色 / dashboard)
Server-side 簡易服務各種「免費 QR 產生」站✗✗(部分還無 HTTPS)
Client-side librarydrrop.cc/qr、QRCode-Generator GitHub✓ 純瀏覽器內中(顏色、size)
離線 appQR Code Generator (macOS app)、Stocard✓✓ 完全本地

怎麼識別「真 client-side」QR 產生器

關鍵問題:輸入網址後,瀏覽器有發 Network request 嗎?

驗證方法

  1. 打開 QR 產生器網站
  2. 按 F12 開 DevTools → Network tab
  3. 清空 log(清空 button)
  4. 輸入 QR 內容、按生成
  5. 看 Network log

如果有 POST 到 server 帶你的內容 → server-side 如果只有 static asset 載入、沒有 POST → client-side

Client-side 額外特徵

  • QR 圖在你輸入時即時改變(不需按「生成」按鈕)
  • QR 在 offline mode 也能生成(試試斷網後再產一次)
  • View source 能看到 JavaScript QR library(譬如 qrcode.js、qrcode.react)

drrop.cc 的 QR 設計

drrop.cc/qr 是 100% client-side

  • qrcode.react library 在瀏覽器內算 QR 矩陣
  • 直接 render 成 SVG(不依賴 Canvas API、不需要 server)
  • 下載 PNG 也是瀏覽器內 Canvas convert(不送 server)
  • 伺服器完全不知道你產過什麼 QR

驗證:

Open https://drrop.cc/qr
DevTools → Network → 輸入網址
→ 看到的只有 static asset (JS / CSS / fonts)
→ 沒有任何 POST request

額外:

  • 無 watermark
  • 無 logo inject
  • 無解析度限制(PNG 是 4× 原 size = 1280×1280)
  • 完全免費 + 無註冊

不同場景的建議

高隱私場景(Wi-Fi 密碼 / 私人地址 / 醫療資訊)

client-side QR離線 app

印刷品(名片、海報、貼紙)

client-side QR + 下載 SVG(向量、不失真) → 或專業 design tool(Illustrator 內建 QR)

商業 / 行銷(需要 logo、顏色、追蹤)

付費 server-side(譬如 QR Code Generator Pro) → trade-off:方便 vs 隱私

偶爾用、一次性

client-side QR(drrop.cc/qr)— 無註冊、即用即走

FAQ

Q:iOS / Android 內建相機掃 QR 有風險嗎? A:掃 QR 本身沒風險 — 它只是把圖像解碼成文字。風險在掃到後的 URL 是否惡意。iOS / Android 不會自動打開 URL,會先顯示給你看。先看 URL host 再決定點不點

Q:drrop.cc 的 QR 真的不存任何資料嗎? A:對。/qr 頁是純 static page + client-side JavaScript。我們的伺服器完全不知道你輸入了什麼。可以離線使用(先載入頁面、再斷網仍能產生 QR)。

Q:client-side QR 可以做動態 QR(事後改網址)嗎? A:不能 — 純 client-side QR 內容寫死在 QR 矩陣裡。如果要「動態 QR」(事後能改目標),必須走 server-side(QR 指向中介 URL,server 端 redirect 到真目標)。drrop.cc 縮網址 + QR 組合可以模擬:QR 指向 drrop.cc 短網址 → 短網址可以靠 deletion token 撤回。

Q:可以信任 GitHub 上的開源 QR library 嗎? A:開源代碼可被 audit — 比 closed-source server 信任度高。但「在哪個 host 跑」也重要。drrop.cc/qr 用 qrcode.react(GitHub 開源 + 2k+ stars + 活躍維護)。

Q:印刷品 QR 我用 1280px PNG 夠嗎? A:看印刷尺寸。一般名片上 QR ≈ 2cm × 2cm,1280px 綽綽有餘。海報大型 QR(10cm+)建議用 SVG 確保不失真。

最後

QR code 看似中性技術,過程中的隱私揭露取決於工具設計。

選 QR 產生器的 5 秒檢查:

  1. 輸入後 Network tab 有 POST 嗎?
  2. QR 有 watermark / logo / 廣告嗎?
  3. 服務 TOS 寫不寫「儲存你的 QR 內容」?
  4. 有 GDPR / CCPA 合規聲明嗎?
  5. 開源 / 可 audit 嗎?

→ 試試 client-side QR:drrop.cc/qr