大前端高級(jí)工程師2023
1. XSS
XSS,Cross-site script,跨站腳本攻擊。是一種網(wǎng)站應(yīng)用程序的安全漏洞攻擊,是代碼注入的一種。它允許惡意用戶將代碼注入到網(wǎng)頁(yè)上,其他用戶在觀看網(wǎng)頁(yè)時(shí)就會(huì)受到影響。這類攻擊通常包含了HTML以及用戶端腳本語言。
它可以分為兩類:反射型和持久型。
反射型XSS攻擊場(chǎng)景:用戶點(diǎn)擊嵌入惡意腳本的鏈接,攻擊者可以獲取用戶的cookie信息或密碼等重要信息,進(jìn)行惡性操作。
解決:開啟cookie的HttpOnly
屬性,禁止JavaScript腳本讀取cookie信息。持久型XSS攻擊場(chǎng)景:攻擊者提交含有惡意腳本的請(qǐng)求(通常使用
<script>
標(biāo)簽),此腳本被保存在數(shù)據(jù)庫(kù)中。用戶再次瀏覽頁(yè)面,包含惡意腳本的頁(yè)面會(huì)自動(dòng)執(zhí)行腳本,從而達(dá)到攻擊效果。這種攻擊常見于論壇,博客等應(yīng)用中。
解決:前端提交請(qǐng)求時(shí),轉(zhuǎn)義<
為<
,轉(zhuǎn)義>
為>
;或者后臺(tái)存儲(chǔ)數(shù)據(jù)時(shí)進(jìn)行特殊字符轉(zhuǎn)義。
建議后臺(tái)處理,因?yàn)楣粽呖梢岳@過前端頁(yè)面,直接模擬請(qǐng)求,提交惡意
2. SQL注入
攻擊者在HTTP請(qǐng)求中注入惡意SQL命令,例如,drop table users,服務(wù)器用請(qǐng)求參數(shù)構(gòu)造數(shù)據(jù)庫(kù)SQL命令時(shí),惡意SQL被執(zhí)行。
解決:后臺(tái)處理,例如,使用預(yù)編譯語句PreparedStatement進(jìn)行預(yù)處理。
3. CSRF
CSRF,Cross-site request forgery,跨站請(qǐng)求偽造。這種方式是利用瀏覽器的cookie或服務(wù)器的session策略,盜取用戶信息,模擬用戶向第三方網(wǎng)站發(fā)送惡意請(qǐng)求。
CSRF比XSS更具危險(xiǎn)性。想要深入理解CSRF的攻擊特性我們有必要了解一下網(wǎng)站session的工作原理。
我們知道http請(qǐng)求是無狀態(tài)的,也就是說每次http請(qǐng)求都是獨(dú)立的無關(guān)之前的操作的,但是每次http請(qǐng)求都會(huì)將本域下的所有cookie作為http請(qǐng)求頭的一部分發(fā)送給服務(wù)端,所以服務(wù)端就根據(jù)請(qǐng)求中的cookie存放的sessionid去session對(duì)象中找到該用戶數(shù)據(jù)。