多域名授權管理看似只是把幾個網域填進後台,實際上卻牽涉到網域格式、授權週期、版本更新與盜版追蹤等細節。尤其是 SaaS、代理商分銷或同一套程式服務多個品牌時,如果只用「完整網域字串」比對,很容易遇到 www.example.com、example.com 和 api.example.com 被誤判成不同站點的問題。比較穩妥的做法,是先把網域標準化,再決定授權範圍。
先定義單域名、泛域名與多域名規則
建議在建立應用時,明確區分三種模式:
- 單域名授權:只允許指定網域,例如
shop.example.com。 - 泛域名授權:允許
*.example.com的子網域,但要防止錯誤匹配到badexample.com。 - 多域名授權:同一組授權碼綁定多個合法網域,適合企業客戶或多站部署。
比對前應移除協議、連接埠與結尾斜線,並統一大小寫。例如 https://Example.com:443/,應轉換為一致格式後再檢查。若直接以字串判斷,後續搬站或啟用 HTTPS 時,客服工單通常會突然增加,這種問題很常見。
授權碼不要只綁域名
實務上,建議將授權資料拆成「應用標識、授權碼、域名清單、有效期、版本權限」幾個欄位,而不是把所有內容硬編碼在一個檔案裡。授權碼可搭配簽名機制,例如 HMAC 或非對稱加密,避免使用者直接修改 AUTHCODE、AUTH_BUILD 等參數繞過檢測。
如果客戶有測試站,最好提供獨立的測試授權或白名單規則,例如允許 localhost、內網 IP 或指定測試子網域,但正式環境仍需重新核驗。這比把所有域名都設成永久放行安全得多。
多站授權要保留操作紀錄
後台至少應記錄授權建立者、使用者、綁定域名、IP、時間、應用版本與最後一次檢查結果。當同一組授權在短時間內從香港、美國及歐洲不同 IP 登入,或突然出現數十個陌生域名,就值得觸發風險提示,而不是直接刪除資料。誤判一次,可能就會傷害正版客戶的信任。
更新機制要與授權檢查分開
線上更新檔案雖然方便,但 online_update.php 的訪問口令不能使用簡單的 123456,也不宜長期暴露在公開路徑。更新前應驗證授權、應用標識與目前 build,並保留備份及回滾方案。我的看法是,授權檢查可以嚴格,但處置要留餘地:先記錄、提示與暫停更新,確認是盜版後再採取限制措施,系統會更穩,也比較不容易誤傷真正付費的使用者。

評論(8)
網域標準化這步真的不能省,之前搬站換 HTTPS 就中過一次
先記錄再處置這個順序我很認同,直接封掉最容易得罪付費客戶
泛域名那個 badexample.com 的坑,看到當下有點冷汗😅
想問測試站白名單一般會設多久有效期比較合適?
授權碼加簽名這塊有推薦的實作方式嗎,HMAC 夠用嗎
最怕的就是客戶自己改參數繞過去
操作紀錄留 IP 和 build 真的有用,出事的時候才查得到
更新口令那段講到重點了,很多人真的就放預設密碼在公開路徑