鍍金池/ 問答/PHP  數(shù)據(jù)庫  HTML/ 怎樣有效防止Cookie詐騙?

怎樣有效防止Cookie詐騙?

  • 初入ThinkPHP5.0 的坑,請問大神怎樣有效防止Cookie的詐騙呢?之前使用Node搭建服務(wù)器的時(shí)候有同樣的問題,只不過當(dāng)時(shí)沒時(shí)間探究下去,直接使用了Cookie中的屬性HttpOnly = true

遇到的問題如下:

1. 使用HttpOnly可以有效防止JavaScript對Cookie的操作,但是在某些特定情況下,還是可以修改的,比如使用Chrome瀏覽器,可以在控制臺雙擊Cookie實(shí)現(xiàn)修改
2. 如果使用SESSION,在Chrome的控制臺中可以看見 "PHPSESSID" 類似的Cookie,使用其他瀏覽器,簡單修改下Cookie,很容易實(shí)現(xiàn)Cookie詐騙
3. 服務(wù)器的用戶登錄如果使用cache寫文件的方式記錄用戶的身份,也要確保是哪個(gè)用戶登錄的,之前想過用MAC碼,但是好像獲取不了
4. 如果通過獲取用戶的設(shè)備信息來確保Cookie的安全性,萬一用戶在瀏覽器中使用移動端視窗打開,這樣子的用戶設(shè)備是會改變的    
  • 曾經(jīng)考慮過記錄IP,但是IP不定的,無效果
  • 直接點(diǎn)怎樣可以讓Cookie保證"唯一性",就是確保相同的cookie,只在原設(shè)備(使用帳號密碼登錄的設(shè)備)生效,即使是換了瀏覽器。
請問大神如果有效防止Cookie詐騙實(shí)現(xiàn)安全登錄呢?

打個(gè)比喻,下圖紅線畫的Cookie,可以通過其他瀏覽器 :

document.cookie = "PHPSESSID = 對應(yīng)的key值"
刷新一下就可以實(shí)現(xiàn)登錄了,怎樣有效防止這樣的行為

圖片描述

回答
編輯回答
愿如初

存放COOKIE的時(shí)候 存一個(gè)A 一個(gè)key=>value
后端存COOKIE的時(shí)候 自己用保密的私鑰B 通過算法(B+key=>value) 得出A
把A和key=>value 同時(shí)存在客戶端,使用的時(shí)候 也必須用同等的算法校驗(yàn)下數(shù)據(jù)合法性

2018年6月11日 15:05
編輯回答
艷骨

應(yīng)該信任客戶端的。
不信任客戶端的話,用token對應(yīng)用戶id,實(shí)現(xiàn)擠掉登陸狀態(tài)功能,能滿足需求不?

2017年2月6日 18:22
編輯回答
傲寒

表單加個(gè)token令牌

2018年1月16日 18:22