csrf(Cross-site request forgery)跨站請(qǐng)求偽造
原理:
- 網(wǎng)站對(duì)用戶(hù)的信任(比如用戶(hù)在知乎登錄成功绑莺,用戶(hù)發(fā)請(qǐng)求帶上token丑婿,后臺(tái)就會(huì)通過(guò))
- 欺騙誘導(dǎo)用戶(hù)對(duì)目標(biāo)站點(diǎn)發(fā)送請(qǐng)求(比如你在其他網(wǎng)站上,有一個(gè)連接帝嗡,“如何學(xué)習(xí)編程 http://zhihu/api/answer/del/xxxx”绸栅,當(dāng)你點(diǎn)擊了螺男,就發(fā)送了一個(gè)GET請(qǐng)求)
如何構(gòu)造 csrf 攻擊:
- 偽造成網(wǎng)址洛勉,引誘用戶(hù)點(diǎn)擊
- 通過(guò)修改 <img> 等帶有 src 屬性的標(biāo)簽發(fā)送請(qǐng)求
- 通過(guò) js 代碼操作表單粘秆,發(fā)送數(shù)據(jù)
防御:
- 驗(yàn)證碼,每次發(fā)送請(qǐng)求都進(jìn)行驗(yàn)證
- token收毫,每次生成的鏈接都帶上一個(gè)隨機(jī) token攻走,發(fā)送給服務(wù)器再進(jìn)行驗(yàn)證是否本人發(fā)送
xss 跨站腳本攻擊
原理:
- 往頁(yè)面加入一段 script 標(biāo)簽包著的 js 代碼,瀏覽器就會(huì)解析運(yùn)行這段代碼
- 如果一不小心被其他人在自己正在登陸的頁(yè)面中注入了代碼此再,他就有可能拿到 cookie昔搂,偽裝成自己的身份了
如何構(gòu)造 xss 攻擊:
- 在頁(yè)面的輸入框中輸入帶有 <script> 標(biāo)簽的代碼
防御:
- 轉(zhuǎn)義,使 js 代碼變?yōu)槠胀ǖ奈谋?/li>
- 保護(hù)好 cookie输拇,不讓其他人在頁(yè)面中拿到