共計 1124 個字符,預(yù)計需要花費 3 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
這篇文章主要介紹 SQL 注入、XSS 和 CSRF 指的是什么意思,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!
SQL 注入
SQL 注入是屬于注入式攻擊,這種攻擊是因為在項目中沒有將代碼與數(shù)據(jù)(比如用戶敏感數(shù)據(jù))隔離,在讀取數(shù)據(jù)的時候,錯誤的將數(shù)據(jù)作為代碼的一部分執(zhí)行而導(dǎo)致的。
典型的例子就是當(dāng)對 SQL 語句進(jìn)行字符串拼接的時候,直接使用未轉(zhuǎn)義的用戶輸入內(nèi)容作為變量。這時,只要在 sql 語句的中間做修改,比如加上 drop、delete 等關(guān)鍵字,執(zhí)行之后后果不堪設(shè)想。
說到這里,那么該怎么處理這種情況呢?三個方面:
1、過濾用戶輸入?yún)?shù)中的特殊字符,降低風(fēng)險。
2、禁止通過字符串拼接 sql 語句,要嚴(yán)格使用參數(shù)綁定來傳入?yún)?shù)。
3、合理使用數(shù)據(jù)庫框架提供的機制。就比如 Mybatis 提供的傳入?yún)?shù)的方式 #{},禁止使用 ${},后者相當(dāng)于是字符串拼接 sql,要使用參數(shù)化的語句。
總結(jié)下,就是要正確使用參數(shù)化綁定 sql 變量。
XSS
XSS:跨站腳本攻擊,Cross-Site Scripting,為了和前端的 css 避免重名,簡稱為 XSS,是指通過技術(shù)手段,向正常用戶請求的 HTML 頁面中插入惡意腳本,執(zhí)行。
這種攻擊主要是用于信息竊取和破壞等目的。比如 2011 年的微博 XSS 攻擊事件,攻擊者利用了微博發(fā)布功能中未對 action-data 漏洞做有效的過濾,在發(fā)布微博信息的時候帶上了包含攻擊腳本的 URL,用戶訪問就會加載惡意腳本,導(dǎo)致大量用戶被攻擊。
關(guān)于防范 XSS 上,主要就是通過對用戶輸入的數(shù)據(jù)做過濾或者是轉(zhuǎn)義,可以使用框架提供的工具類 HtmlUtil。另外前端在瀏覽器展示數(shù)據(jù)的時候,要使用安全的 API 展示數(shù)據(jù)。比如使用 innerText 而不是 innerHTML。
CSRF
跨站請求偽造,在用戶并不知情的情況下,冒充用戶發(fā)送請求,在當(dāng)前已經(jīng)登錄的 web 網(wǎng)站上執(zhí)行惡意操作,比如惡意發(fā)帖,修改密碼等。
大致來看,與 XSS 有重合的地方,前者是黑客盜用用戶瀏覽器中的登錄信息,冒充用戶去執(zhí)行操作。后者是在正常用戶請求的 HTML 中放入惡意代碼,XSS 問題出在用戶數(shù)據(jù)沒有轉(zhuǎn)義,過濾;CSRF 問題出現(xiàn)在 HTTP 接口沒有防范不守信用的調(diào)用。
防范 CSRF 的漏洞方式:
1、CSRF Token 驗證,利用瀏覽器的同源限制,在 HTTP 接口執(zhí)行前驗證 Cookie 中的 Token,驗證通過才會繼續(xù)執(zhí)行請求。
2、人機交互,例如短信驗證碼、界面的滑塊。
以上是“SQL 注入、XSS 和 CSRF 指的是什么意思”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!
向 AI 問一下細(xì)節(jié)
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!