XSS:(cross-site script)跨站腳本
XSS是一種網(wǎng)站應(yīng)用程序的安全漏洞攻擊。惡意用戶將代碼注入到網(wǎng)頁上,然后別的用戶在觀看網(wǎng)頁時受到影響。
其通常指的是惡意用戶利用網(wǎng)頁開發(fā)時遺留的漏洞,使用一種奇妙的方法將惡意代碼放入網(wǎng)頁中,然后當(dāng)用戶去訪問的時候,不由自主地進(jìn)行加載和執(zhí)行惡意用戶制作的腳本。
其中過程大致如下
1 攻擊者發(fā)現(xiàn)網(wǎng)站編寫網(wǎng)頁的漏洞
2 攻擊者將惡意指令放入網(wǎng)頁中,并上傳到服務(wù)器成功(就是服務(wù)器對上傳的內(nèi)容沒有進(jìn)行過濾)
3 其他用戶訪問服務(wù)器種被惡意植入指令的網(wǎng)頁,然后暗地中惡意指令執(zhí)行
如何防護(hù)?
如下
1.過濾掉特殊字符。在node中可以使用node-validator
2.在后臺字符串模板中,不要直接輸出content,例如.net中 <% content %>
3.前端盡量不使用html()方法或者拼接字符串$p=$('<p>'+conent+'</p>') 2.使用http指定頭類型,content-type=text/javascript;charset=utf-8`
3.對于用戶而言:可以在網(wǎng)站設(shè)置不加載js腳本。但是考慮到現(xiàn)在很多網(wǎng)站都是需要js腳本去運行相關(guān)的功能。
總結(jié):還是服務(wù)端做好點吧,畢竟你是提供服務(wù)給用戶的。
reference reference1??
CSRF:(cross site request forgery)
It's renamed XSRF(跨站請求偽裝)
其是一種要挾用戶在已經(jīng)登錄的web程序中執(zhí)行非本意的操作的命令。
具體過程
1.惡意用戶通過操縱用戶的瀏覽器去訪問一些以前被認(rèn)證過的服務(wù)器并進(jìn)行某些惡意操作。
2.而由于服務(wù)器被認(rèn)證過,所以服務(wù)器會認(rèn)為是真正的用戶在執(zhí)行操作。
本質(zhì):其是欺騙用戶的瀏覽器,以用戶的名義去執(zhí)行惡意操作。
如何防護(hù)
如下
1.檢查referer字段:這個字段可以表面請求來自哪個地址
2.服務(wù)器驗證,加上token。這樣在對比token過程中,不一致,服務(wù)器就禁止這個請求。
3.盡量少使用get請求,畢竟明文
由于做過一些后端,也總結(jié)一下自己了解到的后端認(rèn)證方式吧
常見的認(rèn)證方式
1.username+password ->http basic authentication
2.cookie
3.token -->Now ,the JWT token is hot.
4.signature
5.one-time password
reference translation
OAuth 2.0
It's a industry-standard protocol of authentication.It allows some third-website saving your website user's some information without using use's password.