CSRF和XSS攻擊的原理和解決方法

CSRF原理

CSRF (跨站請求偽造 Cross-site request forgery):誘導(dǎo)用戶訪問黑客的網(wǎng)站,并且讓他點擊某些按鈕之類的,在用戶不知情的情況下發(fā)送一些請求到目標(biāo)網(wǎng)站,比如:發(fā)送的請求是一條銀行轉(zhuǎn)賬請求,且這個銀行網(wǎng)站剛好用戶之前有訪問過,認(rèn)證信息還有小的情況下,就有可能會導(dǎo)致用戶的資金在不知情的情況下被轉(zhuǎn)走

解決方法

  1. 使用HTTP頭的Referer字段,該字段會是發(fā)起請求的源網(wǎng)站地址,服務(wù)器收到請求后可以比對Referer字段是不是本網(wǎng)站的網(wǎng)址,如果一致就沒問題,不一致則拒絕處理請求。
  2. 添加校驗token(如圖片驗證碼),可以在正規(guī)網(wǎng)站里添加一些圖片生成的隨機數(shù),讓用戶發(fā)請求的時候識別并輸入這個隨機數(shù),這樣隨后發(fā)送的請求中會包含這個token隨機數(shù),服務(wù)器可以驗證這個token隨機數(shù)是否正確。如果是CSRF偽造的請求是不會攜帶這個token隨機數(shù),就不會被服務(wù)器承認(rèn),拒絕處理請求。

CSRF:使用你的認(rèn)證身份,發(fā)送惡意請求。
以你名義發(fā)送郵件,發(fā)消息,惡意購買商品,轉(zhuǎn)賬交易等等。

XSS原理

XSS攻擊通常指的是通過利用網(wǎng)頁開發(fā)時留下的漏洞,通過巧妙的方法注入惡意指令代碼到網(wǎng)頁,使用戶加載并執(zhí)行攻擊者惡意制造的網(wǎng)頁程序。這些惡意網(wǎng)頁程序通常是JavaScript,攻擊成功后,攻擊者可能得到包括但不限于更高的權(quán)限(如執(zhí)行一些操作)、私密網(wǎng)頁內(nèi)容、會話和cookie等各種內(nèi)容。
跨站腳本攻擊(XSS),是最普遍的Web應(yīng)用安全漏洞。這類漏洞能夠使得攻擊者嵌入惡意腳本代碼到正常用戶會訪問到的頁面中,當(dāng)正常用戶訪問該頁面時,則可導(dǎo)致嵌入的惡意腳本代碼的執(zhí)行,從而達到惡意攻擊用戶的目的。

解決方法

  1. 用戶向服務(wù)器上提交的信息要對URL和附帶的的HTTP頭、POST數(shù)據(jù)等進行查詢,對不是規(guī)定格式、長度的內(nèi)容進行過濾。
  2. 實現(xiàn)Session標(biāo)記(session tokens)、CAPTCHA系統(tǒng)或者HTTP引用頭檢查,以防功能被第三方網(wǎng)站所執(zhí)行。
  3. 確認(rèn)接收的的內(nèi)容被妥善的規(guī)范化,僅包含最小的、安全的Tag(沒有javascript),去掉任何對遠程內(nèi)容的引用(尤其是樣式表和javascript),使用HTTP only的cookie。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容