Q.Link 問答鎖連結工具實測:擋得住亂點,擋不住看原始碼

Q.Link 是開源的問答鎖連結工具,在目標連結前加一道題目,答對才進得去。實測把測驗頁拆開後發現:題目、正確答案與目的地同時印在頁面原始碼裡,查詢介面不必答題就能取回整份記錄,服務也沒有刪除功能。本文攤開它的趣味門檻與真實邊界,說明誰適合用、什麼內容不該經過這個門。

用 AI 摘要這篇文章:

把連結藏在一道題目後面,答對的人才進得去,這是 Q.Link 對自己的一句話介紹。2026 年 8 月實際把它的測驗頁拆開來看,結論先講:它是一個成功的趣味門檻,一把失敗的鎖。題目、正確答案、被藏起來的目標連結,三者同時印在測驗頁的原始碼裡;不答題,改呼叫它自己的查詢介面,一樣拿得到整份內容。拿它替活動加一點儀式感,成立;拿它保護任何東西,等於把要藏的連結連同通關密語一起交給站方資料庫,而且沒有刪除鍵。

這篇文章把實測看到的證據、資料流向與 2026 年的現況攤開,最後給出誰可以用、誰應該走開的判斷線。

答案就印在測驗頁的原始碼裡

Q.Link 官方 README 提供了一條示範連結。打開它,畫面是一道小學等級的算術題,輸入 10 就會顯示答對,等幾秒後跳去 Google。到這裡一切正常,一個可愛的小玩具,題目還支援用 Markdown 排版,可以放標題、清單和表情符號,看得出作者是把它當成有小驚喜的卡片在經營。

Q.Link 官方示範測驗頁:題目 1+2+3+4 與答案輸入框,頁面下方帶廣告區塊Pin
Q.Link 官方示範測驗頁(q-link.minung.dev),題目與答案輸入框,下方為廣告版位。

換個角度看就變了。在這一頁按下查看原始碼,往下捲會找到一段名為 __NEXT_DATA__ 的資料區塊,逐字是這樣的:

{
  "url": "https://google.com",
  "contents": "### Q.Link Demo\n\nThis is Q.Link's demo page. 😀😀  \nMarkdown grammar is supported for content creation.\n\n```\n1 + 2 + 3 + 4 = ?\n```\n\nIf you are correct, go to `https://google.com`\n",
  "correct": "10"
}

題目、答案、目的地,三樣全在同一頁。這個結果可以從它的原始碼解釋:Q.Link 是用 Next.js 架的,伺服器渲染頁面時,直接把連結記錄塞進頁面資料裡送出到瀏覽器;答題的比對則寫在前端元件裡,瀏覽器拿使用者輸入的答案跟頁面裡的 correct 字串做比較,一樣就顯示成功,然後跳轉。換句話說,比對整件事都在你家的瀏覽器裡完成,它的伺服器沒有經手,答案一直在你手上。

所以這道門檻考的是想不想玩,能力從來不在考量裡。願意玩的人會被擋到答對為止,樂趣就成立了;不願意玩的人,查看原始碼的速度比算出 1 加 2 加 3 加 4 還快。辦活動、做關卡、篩選「有沒有心」的受眾,這個門檻夠用;期待它保密,則是對它機制的誤會。Q.Link 的 README 自己也寫得明白,定位是趣味玩具,安全本來就不在它的承諾範圍。真正的存取控制長相不同:答案比對要在伺服器端做完,頁面只拿到對或不對的結果,答錯太多次要有限制。這些它都沒有,而它也沒假裝有。

對收連結的人,這個特性反而好用。收到一條要答題才能進的陌生連結,不必猜答案也不必互動,查看原始碼就能看到目的地再決定要不要理它。這個動作跟答對題目拿到的資訊完全等價,差別只在跳過了遊戲。

第二把鑰匙掛在門口:查詢介面不問身分

原始碼不是唯一的後門。Q.Link 的後端有一個查詢介面,只要帶上連結編號,就把整份記錄原樣吐回來,過程不需要登入,也沒有任何身分檢查。建立端同樣寬鬆:不需要帳號,沒有圖形驗證,填好目標連結、題目、答案按下去就完成,連 email 都不用留。

Q.Link 建立頁表單:題目、答案與目標連結三個欄位,填完即產生問答連結Pin
Q.Link 建立頁:填題目、答案與目標連結三個欄位就完成,不需註冊帳號。

為了確認這不是文件寫好看、實際有牆,2026 年 8 月實測丟了一筆測試內容進去,接著用查詢介面把它讀回來(節錄):

{
  "url": "https://example.com/qlink-verify-temp",
  "contents": "### temp verify 2026-08-22",
  "correct": "tempcheck",
  "createdAt": 1787372063814
}

四個欄位全裸,答案就在其中,連建立的時間戳一起附贈。這代表兩件事。其一,任何拿到 Q.Link 網址的人都有兩條路可走,答題或查詢介面,後者甚至不用打開瀏覽器的開發者工具。其二,建立端在原始碼裡看不到節流設計,任何人都能大量產生連結,服務的存續與資料庫的成本全由站方吸收,這是個人專案常見的善良假設。

連結編號本身倒是湊不出來。編號是 24 位十六進位字串,走的是 MongoDB 的 ObjectId 格式,站上也沒有彙整連結的目錄頁,所以內容外流的主要途徑是連結本身被轉傳,而不是被陌生人翻出來。真正的風險向來是「以為有鎖就敢放東西」這件事本身。

更該問的是它缺了什麼。整個後端只註冊了兩種操作:建立與查詢。沒有更新,沒有刪除。活動結束想把連結下架、題目寫錯想改、目標連結貼錯想撤,介面上找不到任何入口,原始碼裡也沒有對應的操作可以呼叫。按下去的那一秒,內容就交出去了,之後的變數只剩站方會不會、什麼時候清理資料庫。

那內容存到哪裡?資料落在 MongoDB 資料庫,連線設定指向雲端資料庫服務,原始碼註解引用的是 MongoDB Atlas 的部署指南。也就是說,你要藏的目標連結與通關密語,從按下建立就離開你的手,進了站方經營的雲端資料庫,停留多久、會不會被分析、有沒有備份到哪裡,這些問題在站上找不到任何說明。

拿它鎖私密內容,等於把密語一起交出去

把前面兩節的事實合起來,就看清楚這個工具真正的隱私邊界在哪裡。

Q.Link 的典型用法,官方給的例子是徵才頁前面放一道題、用手機邀請函前先答出壽星的生日。注意第二個例子:生日在這個設計裡是通關密語。當你用「只有自己人才知道」的資訊當答案,去保護一條不想給陌生人看的連結,這條連結和那個秘密,從此一起明文躺在第三方伺服器上。鎖保護的東西和鎖的鑰匙,被存在同一個別人家裡。徵才場景也一樣,用「公司吉祥物叫什麼」當題目,等於把這個內部答案寫進了別人的資料庫,求職者答對才能進的那個信箱或表單連結,同樣在裡面。

而這個別人是誰?Q.Link 是韓國開發者 Minung Han 的個人專案,2022 年 2 月開始,GitHub 上 71 顆星,2022 年曾登上 Product Hunt 的推薦版面,作者頁面掛著 Buy Me A Coffee 的贊助連結,2026 年 7 月仍有程式提交,是活的個人作品。全站找得到的導覽頁面只有介紹與建立流程,沒有服務條款,沒有隱私政策,也沒有關於資料保留的任何說明。站方未必會做壞事,個人開源專案的常態確實如此;真正的問題在於,資料交出去之後,你沒有任何文字依據可以主張權利,出了狀況也找不到可以聯絡的對象。

判斷線因此在這裡,而且很乾淨:目標連結公開可見也無妨的,放心用,題目出得有趣一點,它就是好玩具;任何「因為有鎖我才敢放上去」的內容,包含私密邀請、內部文件、含個資的表單,不要經過這個門。有門檻的外觀,沒有門檻的實質,這類內容要的是真正的權限控制,例如雲端硬碟的共用白名單或表單後台的審核機制。

2026 年的它,免費有了新的模樣

Q.Link 不是新服務,2022 年就上線了。近一年它的模樣有具體變化,原始碼的提交時間線寫得很清楚:2025 年 10 月加入 Vercel Analytics 流量統計;2026 年 2 月掛上韓國廣告聯播網 Kakao AdFit;2026 年 7 月再加入 Google AdSense。實際打開測驗頁,廣告腳本與一個 250 乘 250 的廣告單元都在頁面上,建立頁也一樣有廣告腳本蹤跡。

使用體感也跟著變了。答對之後,頁面不會立刻跳轉,原始碼裡寫著 4500 毫秒的延遲,這段時間畫面顯示答對的訊息與廣告,然後才前往目的地。延遲的設計理由站方沒有說明,這裡只並排兩個事實:停留變長了,廣告也在場。對辦活動的人要多想一步,受眾答對題目後,會在你的目標頁之前先看到一塊廣告與幾秒鐘的等待,這幾秒鐘裡可能有人會按掉視窗。

免費使用者要留意的還有語言。介面目前提供韓文、英文、馬來文、土耳其文與簡體中文五種語言,簡中版是 2025 年 10 月由社群貢獻者加入的,繁體中文不在清單上。實際使用時,你面對的會是英文或簡體中文的操作畫面,題目與答案本身倒是可以自由輸入任何語言,自建的題目用中文完全沒有問題。

自架能解決一部分,解決不了另一半

原始碼以 MIT 授權完整公開,授權檔就在倉庫裡,這是 Q.Link 站得住的部分。整套是 TypeScript 寫的 Next.js 加 MongoDB 組合,前後端都在同一個倉庫,相依的套件也都是主流函式庫,沒有來路不明的依賴。照著 repo 的設定準備環境、開一個自己的資料庫、把連線字串填進環境變數、部署到 Vercel 或任何 Node 環境,再把廣告元件拆掉,就能擁有一個資料落在自己資料庫裡的版本。願意投入架設成本的讀者,可以把它當成自己的活動基礎設施,這類自架工具的評估思維,與自架內網穿透的 OutRay 這類專案是同一套:先問資料落在誰家,再問維護誰來扛。

但要精確知道自架修好了什麼、沒修好什麼。自架修好的是資料歸屬與廣告:記錄存進自己的資料庫,頁面不再掛別人的廣告單元,流量統計也拆得掉。沒修好的是那個根本設計:伺服器渲染時仍然把答案與目標連結放進頁面資料,比對仍在瀏覽器裡做。把整套原始碼搬回家,答案照樣印在每一頁的原始碼裡,只是換了個房東。要讓鎖真的鎖住,得修改程式,把答案比對搬到伺服器端進行,頁面只拿到對或不對的結果,修改的幅度不大,但已經是開發工作。所以結論不變:自架版本適合想要無廣告、資料自持的活動主辦者;它仍然不適合拿來保護任何需要保密的東西。

誰可以用,誰應該走開

活動主辦單位、想在抽獎或徵才頁前加一道趣味關卡的人,可以用。目標連結選擇本來就會公開的頁面,題目設計得有梗一點,它提供的儀式感與篩選樂趣是真的。同樣想讓連結多一層互動感的,心之鏈 用人格問卷讓朋友幫你作答,是另一種有趣的實作方向;單純要把長網址變短、變好分享,Tny.imTinyURL 這類縮網址服務更直接,後者的自訂別名與安全檢查觀念也值得一併看看。

想保護私密內容的人,走開。生日、公司暗語、內部連結,任何你不願意直接貼在公開場合的東西,都不要經過這個門,理由前面已經攤開:目的地與密語會一起躺在無條款、無刪除鍵的第三方資料庫裡。需要真正的門禁,交給有權限機制的管道,一道印著答案的題目扛不起這件事。

收到 Q.Link 連結的人,現在你知道怎麼辦了。看一眼原始碼,目的地、題目、答案都在裡面,幾秒鐘就能判斷這是朋友的活動還是該封鎖的誘餌,再決定要不要陪它玩。

鎖的強度取決於最弱的一環。Q.Link 的問題不在題目太簡單,而在它把鑰匙印在了門上;只要你清楚這一點,它仍然是個誠實又可愛的小玩具。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 964

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Share to...