Logo Site EngageLab Mark Colored Transparent文件
搜尋

防止簡訊介面被盜用

簡訊發送介面一旦被未授權呼叫,或 API Key 洩露後被他人使用,會出現簡訊被大量發出、帳戶餘額被快速消耗、通道信譽下降等問題。EngageLab SMS 可以限制發送側的頻率、用量和國家 / 地區範圍,但無法替代你對金鑰和業務發送入口的保護。

本文說明如何把平台能力與業務側防護配合使用,降低介面被盜用的風險。

正確架構

EngageLab SMS API 只能由你的業務系統伺服器端呼叫,不能由瀏覽器、App 用戶端或小程式直接請求。

業務系統伺服器端 → EngageLab SMS API(攜帶 API Key;頁面觸發的發送再傳入 end_user_ip)
              
              業務系統伺服器端 → EngageLab SMS API(攜帶 API Key;頁面觸發的發送再傳入 end_user_ip)

            
此代碼塊在浮窗中顯示
  • dev_keydev_secret 只存放在伺服器端,不要寫入前端程式碼、App 安裝包、公開倉庫或 CI 明文變數。
  • 不要把 SMS API 位址和金鑰暴露給終端使用者可直接存取的介面。
  • 建議為正式環境 API Key 設定呼叫方 IP 白名單,詳見 API Key

兩種 IP 不要混用

設定 / 參數 填寫的是 擋住什麼
API Key 的 IP 白名單 你的伺服器出口 IP 陌生 IP 拿著 Key 直接呼叫 SMS API
發送請求中的 end_user_ip 終端使用者的 IP 同一使用者 IP 在短時間內反覆觸發發送

安全中心 啟用「按 IP 位址」頻控後,必須在 發送簡訊 請求中傳入 end_user_ip,該限制才會生效。這裡應傳使用者裝置的公網 IP,而不是你伺服器的 IP。伺服器端批次發送行銷或通知簡訊時,如果沒有終端使用者 IP,按 IP 頻控不會對該次請求生效,更應依賴 API Key 白名單和發送量限額。

平台側防護

在 SMS 控制台完成以下設定,用於限制介面被盜用後的損失:

你要做的 在哪設定 作用
為 API Key 設定 IP 白名單、有效期,並確保可隨時停用 API Key 限制誰能呼叫介面,洩露後能立刻停用
開啟同號碼、同 IP 的發送頻率限制 安全中心 攔截單號、單 IP 連打
在由頁面觸發的發送請求中傳入 end_user_ip 發送簡訊 讓按 IP 頻控生效
設定日 / 月發送量預警值與限額值 安全中心 用量異常時告警或自動暫停
按國家 / 地區設定白名單或黑名單 安全中心 避免向非業務地區發送
發生緊急情況時一鍵暫停 SMS 通道 安全中心 正在被盜用時快速止損
設定餘額不足警報 警報設定 費用異常時儘早發現

發送量預警或限額觸發後如需收到通知,請先在 Webhook 中設定相應回呼事件。

按範本類型加強防護

不同 範本類型 的被盜用方式不同,防護重點也不一樣。

通知 / 行銷範本

這類簡訊通常由伺服器端按業務事件或營運計畫批次發送,主要風險是金鑰洩露後被他人拿去群發。

  • 正式環境必須設定 API Key IP 白名單。
  • 為應用設定合理的日 / 月發送量限額,避免餘額被一次性打光。
  • 定時或批次任務只在受控的伺服器端環境觸發,不要把發送能力開放成無鑑權 HTTP 介面。

驗證碼範本

如果你使用驗證碼類型範本,由網站或 App 上的「取得簡訊」按鈕觸發發送,還需要在你自己的業務介面上做防護:

  • 發信前做人機驗證(如圖形驗證碼或 Turnstile / reCAPTCHA),並在伺服器端校驗結果。
  • 同一手機號碼設定重發間隔(例如 60 秒),前端同步展示倒數計時。
  • 按帳號、裝置、IP 分別限制分鐘、小時、自然日的請求上限,失敗請求也計入次數。
  • 「取得簡訊」必須帶有登入態,或未登入場景下的有效工作階段,禁止無上下文的公開發送入口。

把錯誤碼當作異常訊號

發送簡訊 在校驗或發送階段可能回傳以下與頻率相關的錯誤。出現這些錯誤時,應減緩重試,並檢查是否存在未授權呼叫或集中請求:

錯誤碼 含義
3004 超出頻率限制,同一範本、同一目標使用者在限制窗口內無法再次下發
10006 超出頻率限制

如果發送量已達安全中心限額,或你已執行緊急止損,後續請求會被拒絕。請先在安全中心確認目前狀態,不要立即連續重試。

金鑰洩露時怎麼做

  1. 在 SMS 控制台 停用或輪換 API Key
  2. 安全中心 使用緊急止損,暫停簡訊發送。
  3. 訊息明細 和回呼中核對異常發送。
  4. 查看 警報設定 是否已觸發餘額警報,並核對近期消耗。
  5. 收緊 API Key IP 白名單,並檢查日 / 月發送量限額是否合理。
  6. 確認風險消除後再恢復發送。

上線檢查清單

  • API 只在伺服器端呼叫,dev_secret 未進入前端、App、公開倉庫或 CI 明文變數。
  • 正式環境 API Key 已設定伺服器出口 IP 白名單。
  • 安全中心已開啟號碼頻控;由頁面觸發的發送已傳入 end_user_ip
  • 已設定日 / 月發送量限額,並設定了用量相關回呼和餘額警報。
  • 驗證碼類發送在呼叫 EngageLab 前已做人機驗證和業務頻控。
  • 已明確被盜用時的處置順序:停用 Key → 緊急止損 → 核查發送紀錄。
Icon Solid Transparent White Qiyu
聯繫銷售