首頁  >  文章  >  資料庫  >  什麼是SQL注入、XSS和CSRF?

什麼是SQL注入、XSS和CSRF?

青灯夜游
青灯夜游轉載
2019-03-28 11:42:122300瀏覽

什麼是SQL注入、XSS和CSRF?這篇文章就來帶大家了解一下SQL注入、XSS和CSRF,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

SQL注入

SQL注入是屬於注入式攻擊,這種攻擊是因為在專案中沒有將程式碼與資料(例如用戶敏感資料)隔離,在讀取資料的時候,錯誤的將資料作為程式碼的一部分執行而導致的。

典型的例子就是對SQL語句進行字串拼接的時候,直接使用未轉義的使用者輸入內容作為變數。這時,只要在sql語句的中間做修改,例如加上drop、delete等關鍵字,執行之後後果不堪設想。

說到這裡,那該怎麼處理這種情況呢?三個面向:

1、過濾使用者輸入參數中的特殊字符,降低風險。

2、禁止透過字串拼接sql語句,要嚴格使用參數綁定來傳入參數。

3、合理使用資料庫框架提供的機制。就例如Mybatis提供的傳入參數的方式 #{},禁止使用${},後者相當於是字串拼接sql,要使用參數化的語句。

總結下,就是要正確使用參數化綁定sql變數。

XSS

XSS:跨站腳本攻擊,Cross-Site Scripting,為了和前端的css避免重名,簡稱XSS,是指透過技術手段,向正常使用者請求的HTML頁面中插入惡意腳本,執行。

這種攻擊主要是用於資訊竊取和破壞等目的。例如2011年的微博XSS攻擊事件,攻擊者利用了微博發布功能中未對action-data漏洞做有效的過濾,在發布微博資訊的時候帶上了包含攻擊腳本的URL,用戶訪問就會載入惡意腳本,導致大量使用者被攻擊。

關於防範XSS上,主要就是透過對使用者輸入的資料做過濾或是轉義,可以使用框架提供的工具類別HtmlUtil。另外前端在瀏覽器展示資料的時候,要使用安全的API展示資料。例如使用innerText而不是innerHTML。

CSRF

跨站請求偽造,在使用者並不知情的情況下,冒充使用者發送請求,在目前已登入的web網站上執行惡意操作,例如惡意發帖,修改密碼等。

大致來看,與XSS有重合的地方,前者是駭客盜用使用者瀏覽器中的登入信息,冒充使用者去執行操作。後者是在正常使用者要求的HTML中放入惡意程式碼,XSS問題出在使用者資料沒有轉義,過濾;CSRF問題出現在HTTP介面沒有防範不守信用的呼叫。

防範CSRF的漏洞方式:

1、CSRF Token驗證,利用瀏覽器的同源限制,在HTTP介面執行前驗證Cookie中的Token,驗證透過才會繼續執行請求。

2、人機交互,例如簡訊驗證碼、介面的滑桿。

相關影片教學推薦:《MySQL教學

以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。更多精彩內容大家可以追蹤php中文網相關教學欄位! ! !

以上是什麼是SQL注入、XSS和CSRF?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除