web安全之xss攻防
1. xss的定義
跨站指令碼攻擊(cross site scripting),縮寫為xss。惡意攻擊者往web頁面裡插入惡意script**,當使用者瀏覽該頁之時,嵌入其中web裡面的script**會被執行,從而達到惡意攻擊使用者的目的。
2. xss的原理
3. xss的攻擊方式
(1)反射型: 發出請求時,xss**出現在url中,作為輸入提交到伺服器端,伺服器端解析後響應,xss隨響應內容一起返回給瀏覽器,最後瀏覽器解析執行xss**,這個過程就像一次發射,所以叫反射型xss。
(2)儲存型: 儲存型xss和反射型的xss差別就在於,儲存型的xss提交的**會儲存在伺服器端(資料庫,記憶體,檔案系統等),下次請求目標頁面時不用再提交xss**。
4. xss的防禦措施
(1)編碼:對使用者輸入的資料進行html entity編碼
(2)過濾:移除使用者上傳的dom屬性,如onerror等,移除使用者上傳的style節點,script節點,iframe節點等。
(3)校正:避免直接對html entity編碼,使用dom prase轉換,校正不配對的dom標籤。
5. 應用示例
構建node應用,演示反射型xss攻擊。(linux作業系統中)
(1) 新建乙個資料夾xss: mkdir xss_test1
(2) 切換目錄到該資料夾下: cd xss
(3) 安裝express: express -e ./
(4) 構建應用依賴: npm install
(5) 開啟構建好的node應用,得到目錄:
(6) 開啟node服務:npm start
(8) 加入xss
修改xss_test1檔案routers目錄下的index.js檔案:
修改xss_test1檔案views目錄下的index.ejs檔案:
(9) 重啟node服務:npm start ,開啟瀏覽器
a. 在位址列輸入:localhost:3000/?xss=hello
執行結果得到:
執行結果得到:
說明: 如果**中沒有res.set('x-xss-protection', 0);
則會發現沒有彈出框,這是因為瀏覽器自動設定了攔截xss,所以onerror事件並不會執行,而加上了:res.set('x-xss-protection', 0);
才會出現彈框,這才完成了一次xss攻擊。
執行結果得到:
執行結果得到:
說明:這種攻擊就常用於廣告植入等。
Web安全之XSS攻擊與防禦小結
web安全之xss攻防 1.xss的定義 跨站指令碼攻擊 cross site scripting 縮寫為xss。惡意攻擊者往web頁面裡插入惡意script 當使用者瀏覽該頁之時,嵌入其中web裡面的script 會被執行,從而達到惡意攻擊使用者的目的。2.xss的原理 3.xss的攻擊方式 1 ...
web安全之xss攻擊
xss攻擊的全稱是cross site scripting xss 攻擊,是一種注入式攻擊。基本的做法是把惡意 注入到目標 由於瀏覽器在開啟目標 的時候並不知道哪些指令碼是惡意的,所以瀏覽器會無差別執行惡意指令碼,從而導致使用者資訊和一些敏感資訊被盜取和洩漏。xss一般分為兩種型別,持久化的xss和...
xss攻擊與防禦
cross site scripting跨站指令碼攻擊 利用js和dom攻擊。盜用cookie,獲取敏感資訊 破壞正常頁面結構,插入惡意內容 廣告.劫持前端邏輯 ddos攻擊效果 分布式拒絕服務攻擊 server limit dos,http header過長,server返回400 攻擊方式 發出...