天天看點

什麼是XSS攻擊?什麼是SQL注入攻擊?什麼是CSRF攻擊?1. XSS(Cross Site Script,跨站腳本攻擊)2CSRF攻擊(Cross Site Request Forgery,跨站請求僞造)

1. XSS(Cross Site Script,跨站腳本攻擊)

是向網頁中注入惡意腳本在使用者浏覽網頁時在使用者浏覽器中執行惡意腳本的攻擊方式。

1.1跨站腳本攻擊分有兩種形式:

反射型攻擊(誘使使用者點選一個嵌入惡意腳本的連結以達到攻擊的目标,目前有很多攻擊者利用論壇、微網誌釋出含有惡意腳本的URL就屬于這種方式)

持久型攻擊(将惡意腳本送出到被攻擊網站的資料庫中,使用者浏覽網頁時,惡意腳本從資料庫中被加載到頁面執行,QQ郵箱的早期版本就曾經被利用作為持久型跨站腳本攻擊的平台)。

1.2防範XSS主要有兩方面

消毒(對危險字元進行轉義)和HttpOnly(js無法擷取Cookie資料)

- SQL注入攻擊是注入攻擊最常見的形式(此外還有OS注入攻擊(Struts 2的高危漏洞就是通過OGNL實施OS注入攻擊導緻的)),當伺服器使用請求參數構造SQL語句時,惡意的SQL被嵌入到SQL中交給資料庫執行。SQL注入攻擊需要攻擊者對資料庫結構有所了解才能進行,攻擊者想要獲得表結構有多種方式:

  • 如果使用開源系統搭建網站,資料庫結構也是公開的(目前有很多現成的系統可以直接搭建論壇,電商網站,雖然友善快捷但是風險是必須要認真評估的);
  • 錯誤回顯(如果将伺服器的錯誤資訊直接顯示在頁面上,攻擊者可以通過非法參數引發頁面錯誤進而通過錯誤資訊了解資料庫結構,Web應用應當設定友好的錯誤頁,一方面符合最小驚訝原則,一方面屏蔽掉可能給系統帶來危險的錯誤回顯資訊);
  • 盲注。防範SQL注入攻擊也可以采用消毒的方式,通過正規表達式對請求參數進行驗證,此外,參數綁定也是很好的手段,這樣惡意的SQL會被當做SQL的參數而不是指令被執行,JDBC中的PreparedStatement就是支援參數綁定的語句對象,從性能和安全性上都明顯優于Statement。

2CSRF攻擊(Cross Site Request Forgery,跨站請求僞造)

是攻擊者通過跨站請求,以合法的使用者身份進行非法操作(如轉賬或發帖等)。CSRF的原理是利用浏覽器的Cookie或伺服器的Session,盜取使用者身份,其原理如下圖所示。

防範CSRF的主要手段是識别請求者的身份,主要有以下幾種方式:

  • 在表單中添加令牌(token)
  • 驗證碼;
  • 檢查請求頭中的Referer(前面提到防圖檔盜連結也是用的這種方式)。

令牌和驗證都具有一次消費性的特征,是以在原理上一緻的,但是驗證碼是一種糟糕的使用者體驗,不是必要的情況下不要輕易使用驗證碼,目前很多網站的做法是如果在短時間内多次送出一個表單未獲得成功後才要求提供驗證碼,這樣會獲得較好的使用者體驗。

什麼是XSS攻擊?什麼是SQL注入攻擊?什麼是CSRF攻擊?1. XSS(Cross Site Script,跨站腳本攻擊)2CSRF攻擊(Cross Site Request Forgery,跨站請求僞造)
補充:防火牆的架設是Web安全的重要保障,企業級防火牆的架設應當有兩級防火牆,Web伺服器和部分應用伺服器可以架設在兩級防火牆之間的DMZ,而資料和資源伺服器應當架設在第二級防火牆之後。

轉載于:https://www.cnblogs.com/wzj4858/p/8259944.html