h5服務(wù)器通信安全 h5需要服務(wù)器支持嗎

保障接口安全的5種常見方式

一般有五種方式:

創(chuàng)新互聯(lián)專注于網(wǎng)站建設(shè),為客戶提供網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計開發(fā)服務(wù),多年建網(wǎng)站服務(wù)經(jīng)驗,各類網(wǎng)站都可以開發(fā),品牌網(wǎng)站設(shè)計,公司官網(wǎng),公司展示網(wǎng)站,網(wǎng)站設(shè)計,建網(wǎng)站費用,建網(wǎng)站多少錢,價格優(yōu)惠,收費合理。

1、Token授權(quán)認證,防止未授權(quán)用戶獲取數(shù)據(jù);

2、時間戳超時機制;

3、URL簽名,防止請求參數(shù)被篡改;

4、防重放,防止接口被第二次請求,防采集;

5、采用HTTPS通信協(xié)議,防止數(shù)據(jù)明文傳輸;

所有的安全措施都用上的話有時候難免太過復(fù)雜,在實際項目中需要根據(jù)自身情況作出取舍,比如可以只使用簽名機制就可以保證信息不會被篡改,或者定向提供服務(wù)的時候只用Token機制就可以了,如何取舍,全看項目實際情況和對接口安全性的要求。

HTTP協(xié)議是無狀態(tài)的,一次請求結(jié)束,連接斷開,下次服務(wù)器再收到請求,它就不知道這個請求是哪個用戶發(fā)過來的,但是對我們有權(quán)限訪問限制的模塊而言,它是需要有狀態(tài)管理的,以便服務(wù)端能夠準(zhǔn)確的知道HTTP請求是哪個用戶發(fā)起的,從而判斷他是否有權(quán)限繼續(xù)這個請求。

Token的設(shè)計方案是用戶在客戶端使用用戶名和密碼登錄后,服務(wù)器會給客戶端返回一個Token,并將Token以鍵值對的形式存放在緩存(一般是Redis)中,后續(xù)客戶端對需要授權(quán)模塊的所有操作都要帶上這個Token,服務(wù)器端接收到請求后進行Token驗證,如果Token存在,說明是授權(quán)的請求。

Token生成的設(shè)計要求:

1、應(yīng)用內(nèi)一定要唯一,否則會出現(xiàn)授權(quán)混亂,A用戶看到了B用戶的數(shù)據(jù);

2、每次生成的Token一定要不一樣,防止被記錄,授權(quán)永久有效;

3、一般Token對應(yīng)的是Redis的key,value存放的是這個用戶相關(guān)緩存信息,比如:用戶的id;

4、要設(shè)置Token的過期時間,過期后需要客戶端重新登錄,獲取新的Token,如果Token有效期設(shè)置較短,會反復(fù)需要用戶登錄,體驗比較差,我們一般采用Token過期后,客戶端靜默登錄的方式,當(dāng)客戶端收到Token過期后,客戶端用本地保存的用戶名和密碼在后臺靜默登錄來獲取新的Token,還有一種是單獨出一個刷新Token的接口,但是一定要注意刷新機制和安全問題;

根據(jù)上面的設(shè)計方案要求,我們很容易得到Token=md5(用戶ID+登錄的時間戳+服務(wù)器端秘鑰)這種方式來獲得Token,因為用戶ID是應(yīng)用內(nèi)唯一的,登錄的時間戳保證每次登錄的時候都不一樣,服務(wù)器端秘鑰是配置在服務(wù)器端參與加密的字符串(即:鹽),目的是提高Token加密的破解難度,注意一定不要泄漏;

客戶端每次請求接口都帶上當(dāng)前時間的時間戳timestamp,服務(wù)端接收到timestamp后跟當(dāng)前時間進行比對,如果時間差大于一定時間(比如:1分鐘),則認為該請求失效。時間戳超時機制是防御DOS攻擊的有效手段。

寫過支付寶或微信支付對接的同學(xué)肯定對URL簽名不陌生,我們只需要將原本發(fā)送給server端的明文參數(shù)做一下簽名,然后在server端用相同的算法再做一次簽名,對比兩次簽名就可以確保對應(yīng)明文的參數(shù)有沒有被中間人篡改過。

簽名算法:

1、首先對通信的參數(shù)按key進行字母排序放入數(shù)組中(一般請求的接口地址也要參與排序和簽名,那么需要額外添加url= 這個參數(shù));

2、對排序完的數(shù)組鍵值對用進行連接,形成用于加密的參數(shù)字符串;

3、在加密的參數(shù)字符串前面或者后面加上私鑰,然后用md5進行加密,得到sign,然后隨著請求接口一起傳給服務(wù)器。

注意: 對于客戶端的私鑰一定要妥善處理好,不能被非法者拿到,如果針對于H5的項目,H5保存私鑰是個問題,目前沒有更好的方法,也是一致困擾我的問題,如果大家有更好的方法可以留言一起探討。

客戶端第一次訪問時,將簽名sign存放到服務(wù)器的Redis中,超時時間設(shè)定為跟時間戳的超時時間一致,二者時間一致可以保證無論在timestamp限定時間內(nèi)還是外 URL都只能訪問一次,如果被非法者截獲,使用同一個URL再次訪問,如果發(fā)現(xiàn)緩存服務(wù)器中已經(jīng)存在了本次簽名,則拒絕服務(wù)。如果在緩存中的簽名失效的情況下,有人使用同一個URL再次訪問,則會被時間戳超時機制攔截,這就是為什么要求sign的超時時間要設(shè)定為跟時間戳的超時時間一致。拒絕重復(fù)調(diào)用機制確保URL被別人截獲了也無法使用(如抓取數(shù)據(jù))。

方案流程:

1、客戶端通過用戶名密碼登錄服務(wù)器并獲取Token;

2、客戶端生成時間戳timestamp,并將timestamp作為其中一個參數(shù);

3、客戶端將所有的參數(shù),包括Token和timestamp按照自己的簽名算法進行排序加密得到簽名sign

4、將token、timestamp和sign作為請求時必須攜帶的參數(shù)加在每個請求的URL后邊

5、服務(wù)端對token、timestamp和sign進行驗證,只有在token有效、timestamp未超時、緩存服務(wù)器中不存在sign三種情況同時滿足,本次請求才有效;

眾所周知HTTP協(xié)議是以明文方式發(fā)送內(nèi)容,不提供任何方式的數(shù)據(jù)加密,如果攻擊者截取了客戶端和服務(wù)器之間的傳輸報文,就可以直接讀懂其中的信息,因此HTTP協(xié)議不適合傳輸一些敏感信息,比如信用卡號、密碼等。

為了解決HTTP協(xié)議的這一缺陷,需要使用另一種協(xié)議:安全套接字層超文本傳輸協(xié)議HTTPS,為了數(shù)據(jù)傳輸?shù)陌踩?,HTTPS在HTTP的基礎(chǔ)上加入了SSL協(xié)議,SSL依靠證書來驗證服務(wù)器的身份,并為客戶端和服務(wù)器之間的通信加密。

HTTPS也不是絕對安全的,如下圖所示為中間人劫持攻擊,中間人可以獲取到客戶端與服務(wù)器之間所有的通信內(nèi)容。

中間人截取客戶端發(fā)送給服務(wù)器的請求,然后偽裝成客戶端與服務(wù)器進行通信;將服務(wù)器返回給客戶端的內(nèi)容發(fā)送給客戶端,偽裝成服務(wù)器與客戶端進行通信。 通過這樣的手段,便可以獲取客戶端和服務(wù)器之間通信的所有內(nèi)容。 使用中間人攻擊手段,必須要讓客戶端信任中間人的證書,如果客戶端不信任,則這種攻擊手段也無法發(fā)揮作用。

針對安全性要求一般的app,可采用通過校驗域名,證書有效性、證書關(guān)鍵信息及證書鏈的方式。

以上說的更多是設(shè)計階段的思路,如果API已經(jīng)在運行的話,我們則需要通過其他方式,如API網(wǎng)關(guān)工具來保護我們的API,這里推薦的是Eolinker,對于上述的5個方面,都有對應(yīng)的功能做到保護API,可以自己部署開源版本試用一下:

h5禁止抓包htps

h5禁止抓包htps。SSL由Netscape公司于1994年創(chuàng)建,它旨在通過Web創(chuàng)建安全的Internet通信。它是一種標(biāo)準(zhǔn)協(xié)議,用于加密瀏覽器和服務(wù)器之間的通信。它允許通過Internet安全輕松地傳輸賬號密碼、銀行卡、手機號等私密信息。

h5實名認證安全嗎

安全可靠。通過官方查詢顯示:中國電信物聯(lián)網(wǎng)H5實名登記靠譜。這是中國電信物聯(lián)網(wǎng)專為客戶打造的綜合服務(wù)平臺,需要進行實名認證,方便用戶線上操作,管理設(shè)備,故障報修,在線咨詢等,智聯(lián)未來,暢想生活。中國電信集團有限公司,簡稱“中國電信”或“中國電信公司”。中國電信成立于1995年4月27日,是國有特大型通信骨干企業(yè)、上海世博會全球合作伙伴,連續(xù)多年入選"世界500強企業(yè)",主要經(jīng)營固定電話、移動通信、衛(wèi)星通信、互聯(lián)網(wǎng)接入及應(yīng)用等綜合信息服務(wù)。

網(wǎng)頁名稱:h5服務(wù)器通信安全 h5需要服務(wù)器支持嗎
URL分享:http://www.muchs.cn/article14/ddcshde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、自適應(yīng)網(wǎng)站、標(biāo)簽優(yōu)化、網(wǎng)站營銷、定制網(wǎng)站、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)