訂單編號是流水號,只用編號查就等於讓人翻你的客戶名單
我的訂單查詢頁,會不會讓人查到別人的訂單?
2026 Aug 11 Vibe Coding Fixer
有位客戶用 AI 做了一個電商頁面,客人不用登入就能買,買完可以用訂單編號查進度。他覺得很方便,問我這樣有沒有問題。
我請他做一件事:拿他自己那筆訂單的編號,加一,再查一次。
他查到了別人的訂單。姓名、電話、地址、買了什麼,全部都在。
答案是:會,只要查詢條件只有訂單編號,就一定會。你要做的是三件事:查詢至少要兩個條件、顯示的時候要遮罩、查詢次數要限制。
一、流水號的問題在哪
訂單編號幾乎都是流水號。第一筆是 1001,第二筆是 1002。這樣做很合理,好看、好對帳、好講電話。
但它也代表:知道任何一個編號的人,就知道所有編號。你的客人拿到自己的 1057,他就知道 1056 跟 1058 存在。不需要駭客,只要在網址上改一個數字。
再往下想,有人可以從 1001 開始一路查到最新,把你所有客人的姓名電話地址抓下來。你的客戶名單就這樣被翻走了,而你的紀錄上只會看到「有人查了很多次訂單」。
這件事真的發生的時候,你要面對的不只是客人。個資外洩在台灣是有法律責任的,而且被翻走的名單很可能會變成詐騙電話的來源,打給你的客人時報得出他買了什麼、寄到哪裡。客人會相信那通電話,因為只有你知道這些。
二、AI 為什麼不會主動幫你想到
你給 AI 的需求是「讓客人可以用訂單編號查訂單」。它就做了一個頁面,輸入編號,顯示訂單。需求完成。
「不能讓別人查到」這件事,你沒說。AI 不會替你想,因為對它來說那是另一個需求。
我之前接過一個電商功能案,客戶要免登入結帳加免登入訂單查詢。報價的時候我直接在規格裡寫上:訂單編號是流水號,所以查詢頁必須做個資遮罩。這不是我寫程式比較厲害,是這一條規格是十幾年踩坑換來的。看過人家名單被翻走一次,下次就不會忘。
用 AI 開發,這種規格能力反而變得更重要。程式寫得快了,但知道要寫什麼,還是人的事。你可以把這篇當成那份規格的一部分,下次請 AI 做查詢頁的時候,把下面三條直接貼進去。
三、查詢頁至少要做的三件事
第一,查詢要兩個以上的條件。訂單編號加上下單時留的手機號碼,或加上 email。編號可以猜,但編號加手機猜不到。這是最基本的一道門。
第二,顯示要遮罩。就算對方通過驗證,畫面上也不需要印出完整資料。姓名顯示「王○明」,電話顯示末三碼,地址只到區。查訂單是要知道進度,不是要看個資。
第三,限制次數。同一個來源短時間查太多次,就先擋一下。正常的客人一天查個幾次,查一百次的一定不是客人。而且被擋的紀錄要留下來,你才知道有人試過。
如果你想做得更好一點,可以在訂單成立的信裡放一個專屬連結,連結裡帶一串猜不到的亂碼,而不是讓人自己輸入編號。這樣連猜的機會都沒有,客人也不用記編號,體驗反而更好。
四、你現在就可以做的檢查
打開你的查詢頁,拿自己的訂單編號,改成前一號或後一號,查查看。
查得到別人的,就是漏了。查不到,再試試看不填手機、只填編號會怎樣。
這個測試花不到一分鐘,但它是你所有客人最在意的那一分鐘。順便把後台的查詢紀錄也看一下,如果已經有大量來自同一處的查詢,那不是測試,是已經發生了。
兩個常見的想法
一個是「那我把編號改成亂數就好」。這比流水號好,但亂數也可能被猜,而且對帳會變得很痛苦。正確的做法還是加第二個條件跟遮罩,編號怎麼編是其次。
另一個是「我的客人很少,沒人會去猜」。個資的問題不看客人多少。一個人被翻走,你就要面對一個人。而且會去翻的不是你的客人,是根本不認識你的人。
所以問自己一句:你的訂單查詢頁,現在把編號加一之後,會看到什麼?
如果你做到一半卡住,可以把狀況寫信給我。我每週會在電子報聊這類做網站、用 AI 的判斷,訂閱在這裡:https://iamlouis.ai/subscribe/edm
ABOUT ME

路老闆 Louis
路老闆有限公司創辦人、Compassio 個人品牌一站式網站系統的開發者。二十年網站與行銷實戰經驗,長期陪伴講師、顧問與創作者把專業變成品牌。每週透過電子報與 Podcast《路老闆的個人品牌診療室》,分享個人品牌、網站經營與 AI 行銷的實務觀察。
如想留言評分,請先 登入會員!