網(wǎng)站接入在線支付 安全重點(diǎn)清單(企業(yè)建站通用,可直接交給開(kāi)發(fā)驗(yàn)收)
核心原則:網(wǎng)站本身不處理銀行卡、微信支付寶密碼,密碼在微信 / 支付寶官方收銀臺(tái)輸入,你的站點(diǎn)只管【訂單、簽名、回調(diào)校驗(yàn)】。
一、接口與驗(yàn)簽安全(容易踩坑)
- 務(wù)必校驗(yàn)支付回調(diào)簽名,不要只看金額、訂單號(hào) 支付平臺(tái)異步回調(diào)通知你 “已付款”,必須校驗(yàn)官方返回的 sign 簽名。 ? 高危錯(cuò)誤:直接拿回調(diào)參數(shù)就標(biāo)記訂單為已支付,黑客偽造請(qǐng)求就能虛假到賬。 ? 規(guī)范:先驗(yàn)簽,驗(yàn)簽通過(guò)后,再校驗(yàn)訂單號(hào)、訂單金額、商戶 ID,防止篡改金額。
- 回調(diào)接口快速返回 success
回調(diào)接口不要寫(xiě)復(fù)雜業(yè)務(wù)邏輯(發(fā)郵件、推送、庫(kù)存扣減),先直接返回
success,業(yè)務(wù)放到隊(duì)列異步執(zhí)行。 否則超時(shí)會(huì)重復(fù)回調(diào),產(chǎn)生重復(fù)扣款、多次發(fā)貨。 - 密鑰、商戶私鑰嚴(yán)禁寫(xiě)在前端 JS、頁(yè)面源碼 商戶密鑰、API 密鑰、證書(shū)私鑰,只存在后端服務(wù)器,前端絕對(duì)不能暴露。 不要把 key 硬編碼在網(wǎng)頁(yè)、APP 前端,很容易被扒取。
二、訂單業(yè)務(wù)邏輯安全(業(yè)務(wù)漏洞比黑客攻擊更常見(jiàn))
- 訂單金額以服務(wù)器數(shù)據(jù)庫(kù)為準(zhǔn),不能用前端傳過(guò)來(lái)的金額 ? 危險(xiǎn):用戶前端修改網(wǎng)頁(yè)價(jià)格,提交給后端。 ? 正確:前端只傳訂單 ID,后端根據(jù)訂單 ID 讀取數(shù)據(jù)庫(kù)原始金額,對(duì)比回調(diào)金額是否一致。
- 做冪等控制:同一個(gè)訂單只能標(biāo)記一次已支付 支付平臺(tái)會(huì)重試回調(diào),要防止多次回調(diào)重復(fù)發(fā)貨 / 多次記賬。 方案:數(shù)據(jù)庫(kù)增加訂單狀態(tài)字段,只有【待支付】狀態(tài)才允許更新為已支付,已支付訂單直接忽略回調(diào)。
- 訂單狀態(tài)閉環(huán):待支付→已支付 / 已關(guān)閉 / 退款,防止?fàn)顟B(tài)混亂 超時(shí)未付款訂單自動(dòng)關(guān)閉,避免占用庫(kù)存。
三、服務(wù)器與網(wǎng)站基礎(chǔ)安全
- 全站強(qiáng)制 HTTPS,SSL 證書(shū)有效 微信、支付寶商戶接入硬性要求;同時(shí)防止中間人抓包篡改請(qǐng)求。
- 服務(wù)器做好權(quán)限隔離
- 支付密鑰、商戶證書(shū)單獨(dú)存放,web 網(wǎng)站進(jìn)程只讀,不可對(duì)外下載
- 服務(wù)器關(guān)閉不必要端口,定期更新系統(tǒng)、PHP/Java 等框架補(bǔ)丁
- 防止 SQL 注入、XSS 跨站 下單、會(huì)員頁(yè)面是攻擊重點(diǎn);用戶輸入(姓名、電話、備注)都要過(guò)濾,不能直接拼入 SQL。
四、商戶后臺(tái) & 賬號(hào)安全
- 微信支付 / 支付寶商戶平臺(tái)賬號(hào):獨(dú)立強(qiáng)密碼 + 開(kāi)啟 MFA 二次驗(yàn)證 不要多人共用一套商戶賬號(hào);操作員權(quán)限分離(財(cái)務(wù)只能對(duì)賬,不能修改支付密鑰)。
- 商戶平臺(tái) IP 白名單(能開(kāi)就開(kāi)) 限制只有你服務(wù)器出口 IP 可以調(diào)用支付 API,就算密鑰泄露,陌生服務(wù)器也無(wú)法發(fā)起請(qǐng)求。
- 定期輪換密鑰,密鑰泄露立刻在商戶平臺(tái)重置。
五、資金、退款、風(fēng)控
- 退款接口權(quán)限嚴(yán)控 退款是高危接口,不能在前端提供退款按鈕。退款操作后端鑒權(quán) + 管理員后臺(tái)手動(dòng)發(fā)起,不允許用戶前端自動(dòng)退款。退款原路退回。
- 做好對(duì)賬機(jī)制 每日自動(dòng)對(duì)賬:網(wǎng)站訂單記錄 VS 微信 / 支付寶平臺(tái)賬單。 發(fā)現(xiàn)兩邊訂單金額、狀態(tài)不一致,自動(dòng)告警人工核查(防止回調(diào)漏單、異常交易)。
- 風(fēng)控基礎(chǔ)校驗(yàn) 短時(shí)間同一 IP 大量下單、大額異常訂單,增加人工審核,防范盜刷。
六、合規(guī)風(fēng)險(xiǎn)(很多企業(yè)忽略,會(huì)被支付平臺(tái)關(guān)停)
- 網(wǎng)站 ICP 備案必須有效,備案主體和營(yíng)業(yè)執(zhí)照、支付商戶主體一致。
- 頁(yè)面公示:退款規(guī)則、售后說(shuō)明、主體信息,支付平臺(tái)審核會(huì)核驗(yàn)。
- 嚴(yán)禁:個(gè)人收款碼放在網(wǎng)站用于商品 / 服務(wù)交易,屬于違規(guī),會(huì)限制收款甚至封號(hào)。
- 留存交易日志:訂單、支付流水、回調(diào)原始數(shù)據(jù)至少保存 180 天,用于對(duì)賬和申訴。
七、驗(yàn)收檢查精簡(jiǎn)版(給建站服務(wù)商)
- ?? 回調(diào)驗(yàn)簽;校驗(yàn)訂單金額取自后端數(shù)據(jù)庫(kù)
- ?? 訂單冪等,防止重復(fù)回調(diào)
- ?? 密鑰不在前端暴露
- ?? 全站 HTTPS
- ?? 退款僅管理員后臺(tái)操作,前端無(wú)退款接口
- ?? 每日對(duì)賬、完整交易日志留存
- ?? 商戶平臺(tái)開(kāi)啟二次驗(yàn)證,配置 IP 白名單
小提醒:安全風(fēng)險(xiǎn)大多不是攻破支付平臺(tái),而是網(wǎng)站自身業(yè)務(wù)邏輯漏洞(前端改價(jià)、不驗(yàn)簽),這是企業(yè)網(wǎng)站支付常出事的地方。




