JavaScript學習筆記-跨站腳本(Cross-site scripting,CSS,XSS)漏洞

Cross Site Script,縮寫CSS又叫XSS,中文意思跨站腳本攻擊,指的是惡意攻擊者往Web頁面裏插入惡意html代碼。
它指的是惡意攻擊者往Web頁面裏插入惡意html代碼,當用戶瀏覽該頁之時,嵌入其中Web裏面的html代碼會被執行,從而達到惡意用戶的特殊目的。XSS屬於被動式的攻擊,因爲其被動且不好利用,所以許多人常忽略其危害性。

維基百科:https://en.wikipedia.org/wiki/Cross-site_scripting

舉個簡單的例子,當我們在代碼裏面動態設置a標籤的鏈接:

<a href="http://xxx.xxxx.xxx">鏈接</a>

如果此時鏈接被篡改爲:

"><script>alert('XSS');</script><"

則a標籤變成了

<a href=""><script>alert('XSS');</script><"">鏈接</a>

此時你應該看出問題了!

熟悉SQL的同學可能注意到了,XSS其實跟SQL注入是一個道理,使用特殊字符拼接腳本達到攻擊的目的。

那麼該如何防範XSS攻擊呢?簡單的來說可以編程的時候應該注意幾點:

  1. 永遠不要相信輸入數據;
  2. 替換特殊字符,如<>’”&/等衆多特殊字符;
  3. HtmlEncode和JavaScriptEncode會對你有所幫助;
  4. 微軟的Anti-Cross Site Scripting Library (AntiXSS)能方便有效的預防XSS攻擊,有關AntiXSS的介紹可以看這個文章:Anti-Cross Site Scripting Library (AntiXSS)

XSS漏洞是普遍存在的漏洞,就算百度、google這樣的大公司也不例外。但程序員是一種追求完美的動物,我等力求自己的代碼能儘可能的完善,至少儘可能的避免一些常見漏洞。這便要求我們更加細心的去寫每一行代碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章