Cross Site Script,縮寫CSS又叫XSS,中文意思跨站腳本攻擊,指的是惡意攻擊者往Web頁面裏插入惡意html代碼。
它指的是惡意攻擊者往Web頁面裏插入惡意html代碼,當用戶瀏覽該頁之時,嵌入其中Web裏面的html代碼會被執行,從而達到惡意用戶的特殊目的。XSS屬於被動式的攻擊,因爲其被動且不好利用,所以許多人常忽略其危害性。
舉個簡單的例子,當我們在代碼裏面動態設置a標籤的鏈接:
<a href="http://xxx.xxxx.xxx">鏈接</a>
如果此時鏈接被篡改爲:
"><script>alert('XSS');</script><"
則a標籤變成了
<a href=""><script>alert('XSS');</script><"">鏈接</a>
此時你應該看出問題了!
熟悉SQL的同學可能注意到了,XSS其實跟SQL注入是一個道理,使用特殊字符拼接腳本達到攻擊的目的。
那麼該如何防範XSS攻擊呢?簡單的來說可以編程的時候應該注意幾點:
- 永遠不要相信輸入數據;
- 替換特殊字符,如<>’”&/等衆多特殊字符;
- HtmlEncode和JavaScriptEncode會對你有所幫助;
- 微軟的Anti-Cross Site Scripting Library (AntiXSS)能方便有效的預防XSS攻擊,有關AntiXSS的介紹可以看這個文章:Anti-Cross Site Scripting Library (AntiXSS)
XSS漏洞是普遍存在的漏洞,就算百度、google這樣的大公司也不例外。但程序員是一種追求完美的動物,我等力求自己的代碼能儘可能的完善,至少儘可能的避免一些常見漏洞。這便要求我們更加細心的去寫每一行代碼。