什么是xss攻擊?
XSS又叫CSS(Cross Site Script),跨站腳本攻擊:指惡意攻擊者往Web頁面里插入惡意Script代碼,當用戶瀏覽該頁之時,嵌入其中Web里面的Script代碼會被執(zhí)行,從而達到惡意攻擊用戶的目的。
那么,當當前的網頁彈出1的時候,我們就知道,這個網頁是可以執(zhí)行js腳本的了,那么我們是不是就可以通過document去盜取一些信息,來幫助我們更進一步的去潛入進去呢?例如盜取一下cookie等。
先來看一下XSS有幾種吧:
持久型:一些可以提交的地方,文章評論,個人信息填寫等,如果沒有加過濾的話,嵌入的腳本就會被提交到服務器上,之后用戶每次訪問都會觸發(fā)腳本(例如圖中的alert(1),每個用戶打開都會彈出1)
非持久型:反射型跨站腳本漏洞,是最普遍的類型。大多是鏈接的方式,需要用戶點擊,才能返回腳本進行操作(用戶訪問服務器-->點擊跨站鏈接--->返回腳本代碼)
DOM型:客戶端的腳本程序可以通過DOM動態(tài)地檢查和修改頁面內容,它不依賴于提交數(shù)據到服務器端,而從客戶端獲得DOM中的數(shù)據在本地執(zhí)行,如果DOM中的數(shù)據沒有經過嚴格確認,就會產生DOM XSS漏洞(很少見emm,反正我沒見過hhh,日后見到了來補上,再細說)
XSS可能會帶來的危害
使網頁無法正常運行:這個就是我們上面中圖示的內容,如果不僅僅是一個alert(1)呢?外部來一個永久循環(huán),這個網頁的彈窗就會永遠關不掉,導致無法正常的實現(xiàn)整體業(yè)務流程。
獲取cookie信息:這個我們也在上文中說過,如果網頁上可以執(zhí)行js腳本的話,那么我們是可以通過document.cookie來實現(xiàn)獲取用戶cookie的。
試想下如果像QQ空間說說中能夠寫入xss攻擊語句,那豈不是看了你說說的人的號你都可以登錄。
劫持流量惡意跳轉:像這樣,在網頁中想辦法插入一句像這樣的語句,訪問的網頁就會直接跳轉到百度去。
<script>window.location.;</script>
XSS的攻擊應該具備這樣的條件
網頁內部有輸入框,內容可存儲在服務器上
輸入框內的內容,才能被提交到他的服務器上,才能改變這個網頁內部的文件內容。
前提是這個輸入,沒有被過濾,才會成功哦!
可以自己寫demo嘗試一下,不建議直接在網絡上開搞emm,自己玩玩就行哈~
XSS防御措施(對用戶輸入內容和服務端返回內容進行過濾和轉譯)
現(xiàn)代大部分瀏覽器都自帶 XSS 篩選器(vue/react等主流框架已經避免類似問題,vue舉例:不能在template中寫script標簽,無法在js中通過ref或append等方式動態(tài)改變或添加script標簽)
過濾:對諸如script、img、a等標簽進行過濾。
編碼:像一些常見的符號,如<>在輸入的時候要對其進行轉換編碼,這樣做瀏覽器是不會對該標簽進行解釋執(zhí)行的,同時也不影響顯示效果。
最后,學習網絡安全是為了保護好自己,在這個網絡時代,避免自己的信息被不法分子盜取,而不是說我們學會如何去攻擊別人。
更多關于網絡安全培訓的問題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓服務經驗,采用全程面授高品質、高體驗培養(yǎng)模式,擁有國內一體化教學管理及學員服務,助力更多學員實現(xiàn)高薪夢想。