自2017年小程序發佈以來,經過4年的快速發展,小程序已然成爲企業互聯網布局不可或缺的一環。無論是互聯網企業還是擁抱互聯網的傳統企業,無論是服務導向型企業還是產品導向型企業,小程序都爲用戶提供了一種輕量化的產品體驗方式。當小程序越來越多的被不同羣體所接受,對於小程序的開發也越來越“水漲船高”。
微信小程序面臨的三類安全風險
無論是社交電商、O2O模式以及遊戲、社區,抑或是其他形式的小程序開發,其終極目的是提升用戶體驗、更好地幫助商家連接線上線下服務獲取客戶。小程序的安全穩定運營與驗證在這一過程中起到了至關重要的作用。小程序的安全問題主要集中在以下三方面:
- 小程序與微信交互存在安全問題。與微信的交互只能使用其提供的API進行,對這些API規範的使用會導致安全問題。
- 小程序與第三方服務器的業務邏輯交互存在問題。這是安全最薄弱的環節,業務邏輯多種可能存在風險或漏洞,如用戶信息泄漏、訂單盜刷、信息安全。
- 第三方服務器Web服務風險。Web服務器中存在的風險,如存儲型XSS攻擊、SQL注入、管理員口令泄露。具體的風險包括,薅羊毛、仿冒山寨、數據爬取等問題。小程序雖然業務模塊相較APP會精簡許多,但是仍然會有註冊、登錄等重要的業務入口。這些入口在傳統平臺上往往也是機器流量攻擊的首要目標。
統計顯示,在2021年上半年數據中,小程序端的驗證數據主要來源於登錄註冊,其次是搜索查詢和支付下單。
頂象“無感驗證”驗證碼如何接入微信小程序?
頂象“無感驗證”集設備指紋、行爲校驗、操作校驗、地理位置校驗等多項功能與一身,基於操作者行爲及環境信息等數據信息,結合模型和風控分析。根據用戶的風險程度,採取不同難度的驗證方式,安全用戶無感知通過,避免惡意攻擊帶來的業務損失,留存真實用戶,能夠保障百萬小程序安全運行。
目前,頂象“無感驗證”驗證碼接入微信小程序的方式有兩種,一種是插件式接入,一種是跳轉式接入。
插件式接入微信小程序
1)用管理員身份登錄微信公衆平臺,請使用需要接入小程序的相關賬號(微信公衆平臺採用不同賬號區分,公衆號的後臺和小程序的後臺分別爲不同賬號),依次點擊:設置-第三方服務-添加插件,然後輸入關鍵字“頂象”並搜索,如下圖所示:
2)獲取密鑰。未註冊用戶可在頂象官網進行賬號註冊,創建應用獲取應用密鑰AppID和AppSecret。
3)集成插件。聲明插件:在app.json中聲明插件。
跳轉式接入微信小程序
1)用管理員身份登錄微信公衆平臺,請使用需要公衆號的相關賬號(微信公衆平臺採用不同賬號區分,公衆號的後臺和小程序的後臺分別爲不同賬號),依次點擊:小程序-小程序管理-添加-關聯小程序,然後輸入小程序AppID“wx82db4a59175bdfdf”並搜索,如下圖所示:
2)獲取密鑰。未註冊用戶可在頂象官網進行賬號註冊,創建應用獲取應用密鑰AppID和AppSecret。
3)小程序集成。
首先,通過navigator組件跳轉至頂象驗證碼。
.wxml<navigator target="miniProgram"app-id="wx82db4a59175bdfdf"path="/pages/captcha/captcha"extra-data="{{options}}">
<button>登陸</button></navigator>
.jsPage({
data: {
options: {
appId: '這裏填寫在頂象官網申請到的appId',
customStyle: {
panelBg: '',
captchaBgColor: ''
}
}
}
})
參數說明:
參數 |
值 |
說明 |
appId |
String |
這裏填寫在頂象官網申請到的appId,注意必須填寫正確,否則會報:功能無法使用 |
customStyle |
Object |
自定義樣式對象,panelBg爲整個頁面的background屬性,captchaBgColor爲驗證碼的background-color屬性 |
然後,在頂象驗證碼中驗證。
最後,驗證成功。驗證結果會在調用方app.js中頂onShow生命週期方法中取到。
if (options.scene === 1038 && options.referrerInfo.appId === 'wx82db4a59175bdfdf') {
const result = options.referrerInfo.extraData;
if (result) {
console.log('返回結果:', result)
} else {
// 用戶點擊右上角關閉了驗證碼
}
}
驗證結果說明:
參數 |
值 |
說明 |
success |
Boolean |
驗證成功失敗 |
token |
String |
驗證成功纔有:token |
msg |
String |
驗證失敗或參數不合法纔有:錯誤信息 |
頂象“無感驗證”微信小程序的常見問題
問:生產控制檯配置的是圖標點選方式,小程序裏顯示的爲什麼還是滑塊方式?
答:小程序的驗證碼類型目前首次只支持滑塊驗證,二次驗證方式只支持圖文點選驗證。 請確認小程序的配置驗證方式正確,可在 控制檯->無感驗證->場景管理頁面 ,選擇對應的場景(你所接入的小程序名)來編輯驗證方式。
問:微信小程序如何接入ConstIDServer地址?
答:小程序ConstIDServer地址以 /udid/ w1 結尾,如https://host/udid/w1。
問:返回 INVALID_APP_ID 是什麼問題?
答:如上所述,是傳入的Appid 錯誤,應填寫在頂象控制檯創建的產品Appid。 可以登錄控制檯,在系統管理菜單下進入產品管理頁面,查看對應產品的Appid。
問:小程序的版本號如何修改?
答:在app.json中聲明插件時,修改版本號即可
{"plugins": {
"captcha": {
"version": "1.2.5",
"provider": "wxbf8483dfc5ac6817"
}
}
}
問:一直顯示“智能加載中”,怎麼辦?
答:請檢查當前網絡連接是否正常。