起因
之前進行模擬登錄的時候經(jīng)常需要傳輸數(shù)據(jù),最近項目正好也涉及一些重要數(shù)據(jù)的傳輸。由于http是明文傳輸,所以只要抓到包,就可以進行重放攻擊,嚴重的甚至可以更改數(shù)據(jù)。
想法一,簽名
第一個想法是對數(shù)據(jù)進行簽名,這樣服務器拿到數(shù)據(jù)重新就行簽名,比對兩次的簽名書否一樣就可以了。重要的是簽名算法的設計。這個方法應用在app上比較方便,但是如果是web端,則會暴漏簽名算法,導致無效
想法二,check_code
第二個想法是服務器生成一次性的驗證碼。用戶拿到驗證碼之后,把驗證碼和數(shù)據(jù)進行md5加密,服務器收到請求之后就刪除驗證碼,然后對數(shù)據(jù)進行驗簽,這樣就保證了數(shù)據(jù)的一次性,有效防治重放攻擊。check_code可放在redis緩存中
last
繼續(xù)研究,歡迎討論