日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

api接口加密_谈谈API接口开发中的安全性如何解决

發(fā)布時(shí)間:2024/10/8 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 api接口加密_谈谈API接口开发中的安全性如何解决 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

如今各種API接口層出不窮,一個(gè)API的好與不好可以從很多方面來考量,其中“安全性”就是一個(gè)API接口最基本也是最重要的一個(gè)特點(diǎn)。本文就來跟大家聊聊關(guān)于API接口開發(fā)的安全性問題。

所謂接口服務(wù)器端直接根據(jù)user_id來做相應(yīng)的會(huì)員操作,這是非常危險(xiǎn)的接口處理,等于把當(dāng)前的會(huì)員系統(tǒng)給完全暴露出來,只要對(duì)方改一下user_id就可操作所有會(huì)員對(duì)應(yīng)的接口。

一般在PC端,我們是通過加密的cookie來做會(huì)員的辨識(shí)和維持會(huì)話的;但是cookie是屬于瀏覽器的本地存儲(chǔ)功能。APP端不能用,所以我們得通過token參數(shù)來辨識(shí)會(huì)員;而這個(gè)token該如何處理呢?

在做接口加密前,我們先來看以下幾個(gè)方案:

方案 1

與APP端開發(fā)人員約定特定的md5組合算法,然后兩端比對(duì)一下,如果相同就allow,不相同就deny;但是,這也是不安全的,如果APP程序被反編譯,這些約定的算法就會(huì)暴露,特別是在安卓APP中,有了算法,完全就可以模擬接口請(qǐng)求通過驗(yàn)證。

方案2

會(huì)員登錄的時(shí)候請(qǐng)求登錄接口,然后服務(wù)器端返回給客戶端一個(gè)token,該token生成的規(guī)則是 網(wǎng)站公鑰 + 當(dāng)前uid + 當(dāng)前時(shí)間戳 + 一段隨機(jī)數(shù)雙重加密,根據(jù)需求決定是把該token放進(jìn)cache等一段時(shí)間自動(dòng)失效,還是放進(jìn)數(shù)據(jù)庫(kù)(如果要放進(jìn)數(shù)據(jù)庫(kù)的話,單獨(dú)拎出一張表來,順便記錄用戶的登錄,登出時(shí)間),在用戶登出登錄的時(shí)候改變一下,確保該token只能在用戶人為登出登錄之間有用。

為保安全,應(yīng)保證讓用戶在一段時(shí)間內(nèi)自動(dòng)退出;此方案配合Linux和數(shù)據(jù)庫(kù)的權(quán)限管理可以防外又防內(nèi)。

方案3

通過對(duì)稱加密算法,該加密算法對(duì)uid+網(wǎng)站公鑰進(jìn)行時(shí)效加密,在一定時(shí)效內(nèi)可用。在會(huì)員登錄成功時(shí),服務(wù)器端對(duì)該ID加密后返回給客戶端,客戶端每次請(qǐng)求接口的時(shí)候帶上該參數(shù),服務(wù)器端通過解密認(rèn)證。

但是這樣做,也是不安全的。因?yàn)?#xff0c;防外不防內(nèi),聽說這次的攜程宕機(jī)就是因?yàn)閮?nèi)部離職人員的惡意操作。內(nèi)部不懷好意的人員如果知道相應(yīng)的算法規(guī)則后,就算沒有數(shù)據(jù)庫(kù)權(quán)限,也可以通過接口來操作相關(guān)會(huì)員。

方案4

數(shù)據(jù)庫(kù)會(huì)員表的password是帶上了隨機(jī)密竄并經(jīng)過雙重加密的md5值;在用戶登錄的時(shí)候,我返回會(huì)員相應(yīng)的uid和password,password雖然是明文的,別人知道也不能登錄,畢竟是經(jīng)過加密的,然后每次請(qǐng)求接口的時(shí)候,通過主鍵uid可以很快的找到當(dāng)前uid對(duì)應(yīng)的token,然后再來比對(duì)。

但是這樣想法是too yang too simple的,抓包的人雖然不能通過密文密碼來登錄該會(huì)員,然而一旦知道了這個(gè)token,除非用戶更改密碼,否則也可以一直通過這個(gè)token來操作該會(huì)員的相關(guān)接口。

除了以上這些,數(shù)據(jù)格式最好使用JSON格式數(shù)據(jù),因?yàn)镴SON有較好的跨平臺(tái)性。在生成JSON的時(shí)候,要注意json的兩種格式:對(duì)象(字典)與 數(shù)組;mobile端開發(fā)語言中沒有類似PHP中的foreach不能遍歷對(duì)象,只能遍歷數(shù)組,他們對(duì)對(duì)象的操作一般都是通過鍵名去取鍵值。不管是成功,還是失敗。接口必須提供明確的數(shù)據(jù)狀態(tài)信息,并且不能返回NULL,如果返回NULL的話,在IOS端會(huì)崩掉。

關(guān)于API接口安全性問題的解決方案還有很多,需要在實(shí)際的實(shí)踐上多多思考總結(jié),這樣才能讓開發(fā)出來的API更加強(qiáng)大。

總結(jié)

以上是生活随笔為你收集整理的api接口加密_谈谈API接口开发中的安全性如何解决的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。