CSRF/XSRF:
一胳挎、什么是CSRF?
CSRF(cross-site request forgery) 跨站請求偽造 ,是指攻擊者盜用了你的身份溺森,以你的名義發(fā)送惡意請求.
二、盜用過程
User(你)登錄了某個(gè)信任A, A將在登錄成功的時(shí)候窑眯,在返回的響應(yīng)頭設(shè)置setCookies屏积。以便下次再訪問接口的時(shí)候得到驗(yàn)證身份。此時(shí)磅甩,在沒有退出登錄的情況下訪問危險(xiǎn)網(wǎng)站B炊林,B悄悄訪問A,因?yàn)闉g覽器在發(fā)送的時(shí)候給在請求頭中加上cookie字段以供A的驗(yàn)證。所以卷要,B就間接性的登錄了A,冒用User的身份在A上進(jìn)行操作渣聚。
以上情況是在瀏覽器沒有同源策略下產(chǎn)生
CSRF的防御:
一、服務(wù)端:方法很多僧叉,總的思想就是在客戶端頁面加偽隨機(jī)數(shù):
cookie值進(jìn)行hash:攻擊者在訪問信任網(wǎng)站A時(shí)奕枝,雖然瀏覽器可以在請求中帶上cookie,但是網(wǎng)站A確不僅僅通過cookie來判斷用戶身份瓶堕,同時(shí)通過用戶發(fā)送過來的內(nèi)容中的偽隨機(jī)數(shù)來判斷請求真正是用用戶發(fā)送的隘道。攻擊者在請求A的時(shí)候,不能在提交的內(nèi)容中產(chǎn)生偽隨機(jī)數(shù)(通過cookie哈希化的值)谭梗;
驗(yàn)證碼:用戶每次提交都需要在表單中填寫圖片上的隨機(jī)字符串或者短信驗(yàn)證碼
二忘晤、客戶端: 待補(bǔ)充
...
參考:淺談CSRF攻擊 http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html
XSS:
一、什么是XSS, 何時(shí)發(fā)生激捏?
XSS(cross site scripting)跨站腳本攻擊设塔。當(dāng)用戶頁面中有input 錄入的時(shí)候,或者通過get請求傳參的時(shí)候不是錄入普通的文字远舅,而是錄入的腳本代碼闰蛔。如"/><script>alert(document.cookie)</script><!- / "onfocus="alert(document.cookie) 這一類的腳本代碼。用來獲取到用戶的cookie表谊。XSS之所以會發(fā)生钞护, 是因?yàn)橛脩糨斎氲臄?shù)據(jù)變成了代碼
二、攻擊場景
1. Dom-Based XSS 漏洞
郵件或其他方式傳遞攻擊者構(gòu)造的url爆办。誘使別人點(diǎn)擊难咕,造成該點(diǎn)擊人的信息寫泄露。Dom-Based XSS漏洞威脅點(diǎn)擊的用戶個(gè)體
2. Stored XSS(存儲式XSS漏洞)
該漏洞允許將攻擊代碼存在數(shù)據(jù)庫中距辆。該類型是應(yīng)用廣泛而且有可能影響大Web服務(wù)器自身安全的漏洞余佃,攻擊者將攻擊腳本上傳到Web服務(wù)器上,使得所有訪問該頁面的用戶都面臨信息泄露的可能跨算。
XSS防御:
在做xss防御的方案中爆土,遵循一個(gè)原則就是用戶的錄入都是危險(xiǎn)的!V畈稀步势!
1.服務(wù)端將重要的cookie設(shè)置為httponly。讓javascript不能獲取cookie
2.輸入框中背犯,只允許我們期望的數(shù)據(jù)坏瘩。其他過濾調(diào)
3.對數(shù)據(jù)進(jìn)行html Encode編碼
4.過濾移除 特殊的html標(biāo)簽 如:<script><iframe><
5.過濾調(diào)javascript事件的標(biāo)簽。例如 'onclick''onfocus'之類的
6.過濾調(diào)某些自定義標(biāo)簽屬性
參考:https://www.cnblogs.com/TankXiao/archive/2012/03/21/2337194.html