XSS
XSS攻擊:跨站腳本攻擊(Cross Site Scripting)捶障,為不和 CSS混淆像屋,故將跨站腳本攻擊縮寫為XSS崭放。
跨站點腳本攻擊,指攻擊者通過篡改網(wǎng)頁扣甲,嵌入惡意腳本程序篮赢,在用戶瀏覽網(wǎng)頁時,控制用戶瀏覽器進行惡意操作的一種攻擊方式琉挖。
XSS攻擊流程
以用戶注冊表單提交為例启泣,如下:
<form method="post" action="http://www.abc.com/user/registry">
用戶:<input type="text" name="username" value="ricky" /><br />
密碼:<input type="password" name="password" value="12345" /><br />
<input type="submit" value="提交" />
</form>
如果,用戶輸入username的不是一個正常的字符串示辈,而是:
"/><script>alert("xss")</script><!-
此時寥茫,頁面變成下面的內(nèi)容,在輸入框input的后面帶上了一段腳本代碼矾麻。
<input type="text" name="username" value="ricky"/><script>alert("haha")</script><!-"/>
當我們原封不動的在頁面上顯示用戶昵稱 頁面會彈出對話框纱耻,并不會造成什么危害,攻擊的威力取決于用戶輸入了什么樣的腳本险耀,只要稍微修改弄喘,便可使攻擊極具攻擊性。
譬如一下論壇網(wǎng)站甩牺,當攻擊者提交惡意的javascript代碼的評論信息或者反饋信息(這些信息蘑志,正常客戶端沒有做xss校驗,會存在客戶端注入問題)卖漫,所有訪問者訪問該內(nèi)容時,都會執(zhí)行這段惡意的javascript代碼赠群。
如何防范XSS攻擊
前端羊始,服務(wù)端需同時對HTML標簽做轉(zhuǎn)義處理。將其中的”<”,”>”等特殊字符進行轉(zhuǎn)義編碼查描。
CSRF
CSRF(Cross-site request forgery)跨站請求偽造突委,也被稱為“One Click Attack”或者Session Riding,通扯縮寫為CSRF或者XSRF匀油,是一種對網(wǎng)站的惡意利用。
跨站點請求偽造勾笆,指攻擊者通過跨站請求敌蚜,以合法的用戶的身份進行非法操作∥炎Γ可以這么理解CSRF攻擊:攻擊者盜用你的身份弛车,以你的名義向第三方網(wǎng)站發(fā)送惡意請求。CRSF能做的事情包括利用你的身份發(fā)郵件蒲每,發(fā)短信纷跛,進行交易轉(zhuǎn)賬,甚至盜取賬號信息邀杏。
CSRF攻擊流程
- 用戶登錄受信任網(wǎng)站A贫奠;
- 在不退出網(wǎng)站A的情況下,訪問危險網(wǎng)站B(攻擊者網(wǎng)站或攻擊者掛馬的網(wǎng)站)望蜡。
例如:
如何防范CSRF攻擊
1唤崭、token機制
在HTTP請求中進行token驗證,如果請求中沒有token或者token內(nèi)容不正確泣特,則認為CSRF攻擊而拒絕該請求浩姥。
2、referer檢測
在HTTP Header中有一個字段Referer状您,它記錄了HTTP請求的來源地址勒叠,如果Referer是其他網(wǎng)站,就有可能是CSRF攻擊膏孟,則拒絕該請求眯分。
但是,服務(wù)器并非都能取到Referer柒桑。很多用戶出于隱私保護的考慮弊决,限制了Referer的發(fā)送。在某些情況下,瀏覽器也不會發(fā)送Referer飘诗,例如HTTPS跳轉(zhuǎn)到HTTP与倡。