亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于加簽名防攻擊的疑問

關于加簽名防攻擊的疑問

慕碼人8056858 2019-01-19 06:40:46
在網上看到一個方案是:“客戶端將參數排序進行MD5加密后,得到sign。 服務端再次將你的參數排序進行MD5加密,比較兩次得到的值,相同校驗成功。為了防止抓包,然后不停發送攻擊的包“ 這樣做 咋就能防止攻擊了呢? 攻擊者也可以進行 把參數MD5加密后發給服務器啊。
查看完整描述

3 回答

?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

如果只做md5,一般要在md5時候,加一個appkey之類的東東,或者說salt,這個東東是不通過參數傳遞的(前后端都知道值),這樣就防止別人篡改和構造請求了。

如果同時做md5和加密,也可以,密鑰不傳就可以了。

查看完整回答
反對 回復 2019-02-12
?
精慕HU

TA貢獻1845條經驗 獲得超8個贊

補充一下樓上的答案,重點說說重放攻擊問題。

有可能請求被其他人抓包,拿來重復請求。
那么設計思路是下面這樣的:

首先,所有方案在加密的時候都應該有一個約定的秘鑰。保證攻擊者不能自己算出sign

方案A:驗證md5是否被請求過

這樣每次請求都有一個唯一的md5,服務端在第一次完成請求后,把md5寫入緩存。
下次處理請求之前先判斷一下有沒有這個md5,如果有就代表是重復請求。

但有沒有想到這里有個缺點:
每一個請求都要寫一個md5進緩存,請求量比較大的話非常占緩存

方案B:給參數里加個時間戳

如果時間差在60s以上,代表這個請求是被別人抓取到了,拿來做重復請求攻擊。

這種方案也有缺點:
客戶端和服務端的時間一致性要求比較高。

終極方案:兩個結合一下。

時間戳+md5
1、時間差120s以上代表重復請求
2、md5寫緩存,緩存時長120s(大于等于上面的值就行),判斷如果有md5代表重復請求

這樣相對比較好的解決了重復請求問題。

查看完整回答
反對 回復 2019-02-12
?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

其實我倒是關注 將參數排序 這個不排序 有什么影響嗎?如果直接把提交的數據拿來用不是更方便,畢竟安全體現再 appkey 上了啊

查看完整回答
反對 回復 2019-02-12
  • 3 回答
  • 0 關注
  • 558 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號