av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

java - 如何確保服務(wù)端的接口調(diào)用安全?

瀏覽:92日期:2023-12-30 11:25:35

問題描述

服務(wù)端提供各種功能接口供客戶端調(diào)用,那么怎樣才能確保請(qǐng)求是來自合法的客戶端,而不是非法的請(qǐng)求呢?

問題解答

回答1:

驗(yàn)證token,或者服務(wù)端用OAuth2框架

回答2:

你是如何定義合法和非法的?在SSO框架下,有token就是橫著走,如果是第三方肯定需要appid和appsecret,需要授權(quán)的話還要帶上AccessToken,這樣也是橫著走,最簡(jiǎn)單的是寫一個(gè)IP攔截器,只允許信任IP通過,但是是用于內(nèi)部互相調(diào)用的高級(jí)別攔截了,一般來說對(duì)方提供了token或appsecret,基本上都算是合法的吧?

回答3:

在設(shè)計(jì)API時(shí),要保證RESTful API的安全性,主要考慮三個(gè)大方面:

1.對(duì)受限資源的登錄授權(quán)2.對(duì)請(qǐng)求做身份認(rèn)證3.對(duì)敏感數(shù)據(jù)進(jìn)行加密

一、受限資源的登錄授權(quán)此流程不是本文重點(diǎn),不贅述,基本流程如下:

客戶端提交賬號(hào)信息(用戶名+密碼)到服務(wù)端

服務(wù)端驗(yàn)證成功,返回AccessToken給客戶端存儲(chǔ)3.訪問受限資源時(shí),客戶端帶入AccessToken就可訪問。

二、請(qǐng)求認(rèn)證如果不對(duì)請(qǐng)求進(jìn)行簽名認(rèn)證,那么可以簡(jiǎn)單的通過fiddler等工具輕易抓包拿到數(shù)據(jù),并進(jìn)行篡改,提交,大規(guī)模批量調(diào)用,則會(huì)使系統(tǒng)產(chǎn)生大量垃圾數(shù)據(jù),系統(tǒng)資源被大量消耗,甚至無(wú)法正常使用(另說,當(dāng)然可以通過GateWay進(jìn)行限流),因而我們需要對(duì)請(qǐng)求進(jìn)行簽名認(rèn)證。

URL格式URL:schema://domain/path?query&imei×tamp&sign

參數(shù)說明簽名方法sign=signature(path?query&imei×tamp&SIGN_KEY)

驗(yàn)證過程認(rèn)證邏輯1、初始時(shí),服務(wù)端存有各App版本的SIGN_KEY,客戶端存有對(duì)應(yīng)版本的SIGN_KEY2、當(dāng)要發(fā)送請(qǐng)求之前,通過簽名方法加密,得到一個(gè)sign3、發(fā)送請(qǐng)求的時(shí)候,連同sign一起發(fā)送給服務(wù)器端4、服務(wù)器端首先驗(yàn)證時(shí)間戳timestamp是否有效,比如是服務(wù)器時(shí)間戳5分鐘之前的請(qǐng)求視為無(wú)效;5、然后取對(duì)應(yīng)版本的SIGN_KEY驗(yàn)證sign是否合法6、為了防止重放攻擊,需要檢查sign是否在redis中存儲(chǔ),如不存在則存入redis(緩存5分鐘)

如何防止數(shù)據(jù)篡改這里通過簽名參數(shù)中包含原有請(qǐng)求的所有參數(shù),改動(dòng)任意參數(shù),sign值都會(huì)不同,因此無(wú)法篡改。

如何防止重放攻擊由于簽名算法中還有imei(設(shè)備唯一Id)、timestamp參數(shù),且簽名算法為不可逆算法(如md5或sha1),因而對(duì)于正常的每個(gè)請(qǐng)求sign值不會(huì)重復(fù)。此時(shí)服務(wù)端可以存儲(chǔ)5分鐘的sign值,來做重放攻擊時(shí)的驗(yàn)證過濾,超過5分鐘的請(qǐng)求則直接被timestamp校驗(yàn)過濾。

總結(jié)如此便實(shí)現(xiàn)了請(qǐng)求認(rèn)證,防止數(shù)據(jù)篡改,重放攻擊,但是需要確保App密鑰(SIGN_KEY)的安全保存,其優(yōu)點(diǎn)是容易理解與實(shí)現(xiàn),缺點(diǎn)是需要承擔(dān)安全保存密鑰和定期更新密鑰的負(fù)擔(dān)。

三、敏感據(jù)加密1)、部署SSL基礎(chǔ)設(shè)施(即HTTPS),敏感數(shù)據(jù)的傳輸全部基于SSL。2)、僅對(duì)部分敏感數(shù)據(jù)做加密(例如賬號(hào)+密碼),并加入某種隨機(jī)數(shù)作為加密鹽,以防范數(shù)據(jù)被篡改。

回答4:

我們用的RSA加密算法,請(qǐng)求數(shù)據(jù)的參數(shù)均轉(zhuǎn)成json然后用服務(wù)器RSA證書對(duì)json進(jìn)行加密,http請(qǐng)求就可以了,服務(wù)端私鑰解密

回答5:

使用oauth2或者類似的token之類的

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 国产91久久精品一区二区 | 97中文视频 | www.狠狠干 | 99精品一区二区三区 | 欧美日韩精品久久久免费观看 | 国产精品久久久久久婷婷天堂 | 日韩欧美大片 | a免费观看 | 色婷婷婷婷色 | 自拍偷拍第一页 | 亚洲成人毛片 | 日韩中文在线视频 | 国精产品一品二品国精在线观看 | 一二三四在线视频观看社区 | 国产一区二区电影 | 中文字幕在线三区 | 精品国产91乱码一区二区三区 | 99精品视频在线 | 中文字幕动漫成人 | 人操人免费视频 | 国产xxx在线观看 | 日韩精品一区二区三区中文在线 | 成人精品久久 | 狠狠爱免费视频 | 欧美在线视频一区二区 | 日本特黄a级高清免费大片 特黄色一级毛片 | 亚洲欧美综合 | cao在线 | 久久中文字幕av | 亚洲成人精品在线观看 | 91久久精品一区二区二区 | 日韩在线视频精品 | 98成人网 | 欧美日韩国产一区二区三区 | 国产美女福利在线观看 | 日本午夜网 | 亚洲视频在线观看免费 | 91观看| 国产精品视频在线播放 | 中文天堂网 | 免费色网址 |