溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何理解RESTful API的安全性

發(fā)布時(shí)間:2021-11-12 17:17:05 來(lái)源:億速云 閱讀:312 作者:柒染 欄目:大數(shù)據(jù)

如何理解RESTful API的安全性,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

保證RESTful API的安全性,主要包括三大方面: 
a) 對(duì)客戶端做身份認(rèn)證 
b) 對(duì)敏感的數(shù)據(jù)做加密,并且防止篡改 
c) 身份認(rèn)證之后的授權(quán) 
對(duì)客戶端做身份認(rèn)證,有幾種常見(jiàn)的做法: 
在請(qǐng)求中加簽名參數(shù)

1.為每個(gè)接入方分配一個(gè)密鑰,并且規(guī)定一種簽名的計(jì)算方法。要求接入方的請(qǐng)求中必須加上簽名參數(shù)。這個(gè)做法是最簡(jiǎn)單的,但是需要確保接入方密鑰的安全保存,另外還要注意防范replay攻擊。其優(yōu)點(diǎn)是容易理解與實(shí)現(xiàn),缺點(diǎn)是需要承擔(dān)安全保存密鑰和定期更新密鑰的負(fù)擔(dān),而且不夠靈活,更新密鑰和升級(jí)簽名算法很困難。

使用標(biāo)準(zhǔn)的HTTP身份認(rèn)證機(jī)制

HTTP Basic身份認(rèn)證安全性較低,必須與HTTPS配合使用。HTTP Digest身份認(rèn)證可以單獨(dú)使用,具備中等程度的安全性。

HTTP Digest身份認(rèn)證機(jī)制還支持插入用戶自定義的加密算法,這樣可以進(jìn)一步提高API的安全性。不過(guò)插入自定義加密算法在面向互聯(lián)網(wǎng)的API中用的不是很多。 
這個(gè)做法需要確保接入方“安全域-用戶名-密碼”三元組信息的安全保存,另外還要注意防范replay攻擊。

優(yōu)點(diǎn):基于標(biāo)準(zhǔn),得到了廣泛的支持(大量HTTP服務(wù)器端、客戶端庫(kù))。在服務(wù)器端做HTTP身份認(rèn)證的職責(zé)可以由Web Server(例如Nginx)、App Server(例如Tomcat)、安全框架(例如Spring Security)來(lái)承擔(dān),對(duì)應(yīng)用開(kāi)發(fā)者來(lái)說(shuō)是透明的。HTTP身份認(rèn)證機(jī)制(RFC 2617)非常好地體現(xiàn)了“分離關(guān)注點(diǎn)”的設(shè)計(jì)原則,而且保持了操作語(yǔ)義的可見(jiàn)性。

2.缺點(diǎn):這類基于簡(jiǎn)單用戶名+密碼機(jī)制的安全性不可能高于基于非對(duì)稱密鑰的機(jī)制(例如數(shù)字證書(shū))。

使用OAuth協(xié)議做身份認(rèn)證

OAuth協(xié)議適用于為外部應(yīng)用授權(quán)訪問(wèn)本站資源的情況。其中的加密機(jī)制與HTTP Digest身份認(rèn)證相比,安全性更高。需要注意,OAuth身份認(rèn)證與HTTP Digest身份認(rèn)證之間并不是相互取代的關(guān)系,它們的適用場(chǎng)景是不同的。OAuth協(xié)議更適合于為面向最終用戶維度的API提供授權(quán),例如獲取隸屬于用戶的微博信息等等。如果API并不是面向最終用戶維度的,例如像七牛云存儲(chǔ)這樣的存儲(chǔ)服務(wù),這并非是OAuth協(xié)議的典型適用場(chǎng)景。 
3.對(duì)敏感的數(shù)據(jù)做加密,并且防止篡改,常見(jiàn)的做法有:

部署SSL基礎(chǔ)設(shè)施(即HTTPS),敏感數(shù)據(jù)的傳輸全部基于SSL。  
僅對(duì)部分敏感數(shù)據(jù)做加密(例如預(yù)付費(fèi)卡的卡號(hào)+密碼),并加入某種隨機(jī)數(shù)作為加密鹽,以防范數(shù)據(jù)被篡改。 
  
身份認(rèn)證之后的授權(quán),主要是由應(yīng)用來(lái)控制。通常應(yīng)該實(shí)現(xiàn)某種基于角色+用戶組的授權(quán)機(jī)制,這方面的框架有不少(例如Spring Security),不過(guò)大多數(shù)開(kāi)發(fā)團(tuán)隊(duì)還是喜歡自己來(lái)實(shí)現(xiàn)相關(guān)功能。

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI