自 2017 年小程序發(fā)布以來(lái),經(jīng)過 4 年的快速發(fā)展,小程序已然成為企業(yè)互聯(lián)網(wǎng)布局不可或缺的一環(huán)。無(wú)論是互聯(lián)網(wǎng)企業(yè)還是擁抱互聯(lián)網(wǎng)的傳統(tǒng)企業(yè),無(wú)論是服務(wù)導(dǎo)向型企業(yè)還是產(chǎn)品導(dǎo)向型企業(yè),小程序都為用戶提供了一種輕量化的產(chǎn)品體驗(yàn)方式。
微信小程序面臨的三類安全風(fēng)險(xiǎn)
無(wú)論是社交電商、O2O模式以及游戲、社區(qū),抑或是其他形式的小程序開發(fā),其終極目的是提升用戶體驗(yàn)、更好地幫助商家連接線上線下服務(wù)獲取客戶。小程序的安全穩(wěn)定運(yùn)營(yíng)與驗(yàn)證在這一過程中起到了至關(guān)重要的作用。小程序的安全問題主要集中在以下三方面:
1.小程序與微信交互存在安全問題。與微信的交互只能使用其提供的API進(jìn)行,對(duì)這些API規(guī)范的使用會(huì)導(dǎo)致安全問題。
2.小程序與第三方服務(wù)器的業(yè)務(wù)邏輯交互存在問題。這是安全最薄弱的環(huán)節(jié),業(yè)務(wù)邏輯多種可能存在風(fēng)險(xiǎn)或漏洞,如用戶信息泄漏、訂單盜刷、信息安全。
3.第三方服務(wù)器Web服務(wù)風(fēng)險(xiǎn)。Web服務(wù)器中存在的風(fēng)險(xiǎn),如存儲(chǔ)型XSS攻擊、SQL注入、管理員口令泄露。具體的風(fēng)險(xiǎn)包括,薅羊毛、仿冒山寨、數(shù)據(jù)爬取等問題。小程序雖然業(yè)務(wù)模塊相較APP會(huì)精簡(jiǎn)許多,但是仍然會(huì)有注冊(cè)、登錄等重要的業(yè)務(wù)入口。這些入口在傳統(tǒng)平臺(tái)上往往也是機(jī)器流量攻擊的首要目標(biāo)。
統(tǒng)計(jì)顯示,在 2021 年上半年數(shù)據(jù)中,小程序端的驗(yàn)證數(shù)據(jù)主要來(lái)源于登錄注冊(cè),其次是搜索查詢和支付下單。
頂象“無(wú)感驗(yàn)證”驗(yàn)證碼如何接入微信小程序?
頂象“無(wú)感驗(yàn)證”集設(shè)備指紋、行為校驗(yàn)、操作校驗(yàn)、地理位置校驗(yàn)等多項(xiàng)功能與一身,基于操作者行為及環(huán)境信息等數(shù)據(jù)信息,結(jié)合模型和風(fēng)控分析。根據(jù)用戶的風(fēng)險(xiǎn)程度,采取不同難度的驗(yàn)證方式,安全用戶無(wú)感知通過,避免惡意攻擊帶來(lái)的業(yè)務(wù)損失,留存真實(shí)用戶,能夠保障百萬(wàn)小程序安全運(yùn)行。
目前,頂象“無(wú)感驗(yàn)證”驗(yàn)證碼接入微信小程序的方式有兩種,一種是插件式接入,一種是跳轉(zhuǎn)式接入。
插件式接入微信小程序
1)用管理員身份登錄微信公眾平臺(tái),請(qǐng)使用需要接入小程序的相關(guān)賬號(hào)(微信公眾平臺(tái)采用不同賬號(hào)區(qū)分,公眾號(hào)的后臺(tái)和小程序的后臺(tái)分別為不同賬號(hào)),依次點(diǎn)擊:設(shè)置-第三方服務(wù)-添加插件,然后輸入關(guān)鍵字“頂象”并搜索,如下圖所示:

2)獲取密鑰。未注冊(cè)用戶可在頂象官網(wǎng)進(jìn)行賬號(hào)注冊(cè),創(chuàng)建應(yīng)用獲取應(yīng)用密鑰AppID和AppSecret。
3)集成插件。聲明插件:在app.json中聲明插件。
跳轉(zhuǎn)式接入微信小程序
1)用管理員身份登錄微信公眾平臺(tái),請(qǐng)使用需要公眾號(hào)的相關(guān)賬號(hào)(微信公眾平臺(tái)采用不同賬號(hào)區(qū)分,公眾號(hào)的后臺(tái)和小程序的后臺(tái)分別為不同賬號(hào)),依次點(diǎn)擊:小程序-小程序管理-添加-關(guān)聯(lián)小程序,然后輸入小程序AppID“wx82db4a59175bdfdf”并搜索,如下圖所示:

2)獲取密鑰。未注冊(cè)用戶可在頂象官網(wǎng)進(jìn)行賬號(hào)注冊(cè),創(chuàng)建應(yīng)用獲取應(yīng)用密鑰AppID和AppSecret。
3)小程序集成。
首先,通過navigator組件跳轉(zhuǎn)至頂象驗(yàn)證碼。
.wxml
登陸
.jsPage({
data: {
options: {
appId: '這里填寫在頂象官網(wǎng)申請(qǐng)到的appId',
customStyle: {
panelBg: '',
captchaBgColor: ''
}
}
}
})
參數(shù)說(shuō)明:

然后,在頂象驗(yàn)證碼中驗(yàn)證。

最后,驗(yàn)證成功。驗(yàn)證結(jié)果會(huì)在調(diào)用方app.js中頂onShow生命周期方法中取到。
if (options.scene ===1038 && options.referrerInfo.appId === 'wx82db4a59175bdfdf') {
const result = options.referrerInfo.extraData;
if (result) {
console.log('返回結(jié)果:', result)
} else {
// 用戶點(diǎn)擊右上角關(guān)閉了驗(yàn)證碼
}
}
驗(yàn)證結(jié)果說(shuō)明:

頂象“無(wú)感驗(yàn)證”微信小程序的常見問題
問:生產(chǎn)控制臺(tái)配置的是圖標(biāo)點(diǎn)選方式,小程序里顯示的為什么還是滑塊方式?
答:小程序的驗(yàn)證碼類型目前首次只支持滑塊驗(yàn)證,二次驗(yàn)證方式只支持圖文點(diǎn)選驗(yàn)證。 請(qǐng)確認(rèn)小程序的配置驗(yàn)證方式正確,可在 控制臺(tái)->無(wú)感驗(yàn)證->場(chǎng)景管理頁(yè)面 ,選擇對(duì)應(yīng)的場(chǎng)景(你所接入的小程序名)來(lái)編輯驗(yàn)證方式。
問:微信小程序如何接入ConstIDServer地址?
答:小程序ConstIDServer地址以 /udid/ w1 結(jié)尾。
問:返回 INVALID_APP_ID 是什么問題?
答:如上所述,是傳入的Appid 錯(cuò)誤,應(yīng)填寫在頂象控制臺(tái)創(chuàng)建的產(chǎn)品Appid。 可以登錄控制臺(tái),在系統(tǒng)管理菜單下進(jìn)入產(chǎn)品管理頁(yè)面,查看對(duì)應(yīng)產(chǎn)品的Appid。
問:小程序的版本號(hào)如何修改?
答:在app.json中聲明插件時(shí),修改版本號(hào)即可
{"plugins": {
"captcha": {
"version": "1.2.5",
"provider": "wxbf8483dfc5ac6817"
}
}
}
問:一直顯示“智能加載中”,怎么辦?
答:請(qǐng)檢查當(dāng)前網(wǎng)絡(luò)連接是否正常。






