后端接口拆分導(dǎo)致的問(wèn)題

項(xiàng)目中遇到這樣一個(gè)場(chǎng)景:

1.有個(gè)頁(yè)面需要先輸入用戶手機(jī)號(hào),然后發(fā)送短信驗(yàn)證碼;

2.輸入完短信驗(yàn)證碼后,再?gòu)棾鲆粋€(gè)交易密碼的彈框;

后臺(tái)把這兩步分別使用2個(gè)接口來(lái)校驗(yàn)信息,第一個(gè)接口傳入?yún)?shù) 手機(jī)號(hào)和短信驗(yàn)證碼,校驗(yàn)成功彈出窗口繼續(xù)輸入交易密碼,輸完后調(diào)用接口傳人參數(shù) 交易密碼 校驗(yàn)交易密碼,校驗(yàn)成功即可支付了! 哈哈哈,真開心,大功告成?


對(duì)于上面的操作流程認(rèn)真分析一下,有沒(méi)有不安全的隱患存在呢?下面簡(jiǎn)單說(shuō)說(shuō)我個(gè)人看法:

1.第一步校驗(yàn)手機(jī)號(hào)和短信驗(yàn)證碼 肯定是沒(méi)有疑問(wèn),這一步校驗(yàn)?zāi)康氖潜WC當(dāng)前操作人一定是本人(手機(jī)丟了這種情況暫時(shí)不考慮);

2.第二步校驗(yàn)僅僅傳人校驗(yàn)密碼,這樣就會(huì)留下一個(gè)隱患,當(dāng)有人且本人知道了該用戶的交易密碼直接使用工具(非APP)直接去調(diào)用第二個(gè)接口,那也肯定能夠校驗(yàn)通過(guò),可能有人會(huì)說(shuō)我報(bào)文頭加session機(jī)制防止工具直接調(diào)用接口;那就不得不考慮到更牛逼點(diǎn)壞人,他能夠破解APP,把APP第一步校驗(yàn)手機(jī)號(hào)(可以理解為這一步就是用來(lái)確定是不是本人操作)注釋掉了,那后面就照樣可以通過(guò)了!或許大家覺(jué)得這些情況太極端了,確實(shí)我也認(rèn)為又能夠破解APP又還能搞到你交易密碼這種人極少。


我的處理方式:

第一種:如果你的手機(jī)號(hào)和短信驗(yàn)證碼 還有交易密碼都在同一個(gè)頁(yè)面,那么后臺(tái)就把這2個(gè)接口合并成一個(gè)接口來(lái)同時(shí)校驗(yàn)這三個(gè)參數(shù);

第二種:如果手機(jī)號(hào),短信驗(yàn)證碼 和交易密碼不在同一個(gè)頁(yè)面,那么還是使用兩個(gè)接口去校驗(yàn),但是第二個(gè)接口還必須將手機(jī)號(hào) 短信驗(yàn)證碼還有交易密碼都傳入了一起校驗(yàn)。

這樣用兩個(gè)接口校驗(yàn)的好處:先校驗(yàn)短信驗(yàn)證碼了就可以避免用戶在短信驗(yàn)證碼頁(yè)面輸錯(cuò)了,自己還沒(méi)發(fā)現(xiàn),繼續(xù)去輸入交易密碼,輸完了去提交校驗(yàn)時(shí)候才發(fā)現(xiàn)短信驗(yàn)證碼錯(cuò)誤了,又用返回到上個(gè)頁(yè)面,這樣從用戶體驗(yàn)角度考慮并不友好。

建議使用第二種方式,可擴(kuò)展性更強(qiáng)一些。

前面說(shuō)那么牛逼的壞蛋可能很少,那為什么還考慮這么多呢,我是想跟大家講一個(gè)后臺(tái)接口定義原則:外圍判定只能用作外圍校驗(yàn)使用,不允許當(dāng)作內(nèi)部系統(tǒng)判斷標(biāo)準(zhǔn)。

什么意思?

可以把后臺(tái)之外的都當(dāng)做外圍系統(tǒng),比方說(shuō)web前端,APP端等,就剛剛這個(gè)場(chǎng)景 校驗(yàn)手機(jī)號(hào)和短信驗(yàn)證碼 就是在判斷是否是本人,如果按我最開始的處理方式,我第一步校驗(yàn)成功了去第二步操作,僅僅傳人交易密碼其實(shí)就是將前端得到的結(jié)果,現(xiàn)在操作用戶為本人這個(gè)結(jié)果直接給后臺(tái),后臺(tái)直接使用了這個(gè)結(jié)果,沒(méi)有再去校驗(yàn)一遍,就出問(wèn)題啦!可能這里理解起來(lái)有點(diǎn)亂,不妨去想想當(dāng)使用優(yōu)酷APP看視頻,你去看VIP資源的時(shí)候,本來(lái)APP從登錄后就知道你是不是VIP,那后臺(tái)是不是就不用再校驗(yàn)?zāi)闶遣皇钦娴腣IP呢,就寫這么多吧,慢慢體會(huì)!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,765評(píng)論 25 709
  • 1.背景 互聯(lián)網(wǎng)金融平臺(tái)賬戶進(jìn)行開戶或者支付業(yè)務(wù)時(shí),綁卡鑒權(quán)環(huán)節(jié)是必經(jīng)之路。那么什么是綁卡鑒權(quán)?綁卡是將用戶銀行卡...
    蕭竹閱讀 15,583評(píng)論 0 28
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,045評(píng)論 4 61
  • 早上因一個(gè)電話影響一天的心情,當(dāng)你拿著求回來(lái)的附身符送給我,內(nèi)心??很感動(dòng),每次你都是那么細(xì)心的給予關(guān)心!但是因?yàn)?..
    Mary妹善閱讀 225評(píng)論 0 0
  • 可惜的是你沒(méi)有聽我的勸言,沒(méi)有學(xué)到我身上的某些優(yōu)點(diǎn),我不是讓你完美,我是讓你更加讓你自己更加強(qiáng)大,作為兄弟,這也許...
    赤寧閱讀 245評(píng)論 0 0

友情鏈接更多精彩內(nèi)容