**感謝mcfog和yc8332的回答按照mcfog的回答如果sign的算法公開的話, sign不就沒有校驗功能了嗎, 惡意攻擊的人也可以根據該算法生成sign了**剛讀了一篇相關的博文, 有一點不明, 請大家解惑,謝謝文中講到sign是根據用戶"請求的所有參數,包括timestamp還有token", 然后通過加密算法生成的sign. 然后他說在驗證sign的時候是通過相同的加密規則生成一個sign, 看是否與請求的sign相同.我的疑惑來了:用戶是怎么知道合法的sign是什么, 是在用戶登錄成功后, 和token一起返回給客戶端的嗎?如果是的話這個token和sign在客戶端和服務器端一般是怎么保存的, 是都存放在cookie中和session中?每次請求的參數和時間戳一定是不同的, 怎么會能"根據用戶請求的url參數, 重現出原來加密出的sign", 加密的原始素材只有token沒變, 而其他的都變了, 怎么一樣呢.博文的原文如下:"將所有用戶請求的參數按照字母排序(包括timestamp,token),然后根據MD5加密(可以加點鹽),全部大寫,生成sign簽名,這就是所說的url簽名算法。然后登陸后每次調用用戶信息時,帶上sign,timestamp,token參數。""根據用戶請求的url參數,服務器端按照同樣的規則生成sign簽名,對比簽名看是否相等,相等則放行。(自然url簽名也無法100%保證其安全,也可以通過公鑰AES對數據和url加密,但這樣如果無法確保公鑰丟失,所以簽名只是很大程度上保證安全)"
添加回答
舉報
0/150
提交
取消