JavaScript学习笔记-跨站脚本(Cross-site scripting,CSS,XSS)漏洞

时间:2021-03-01 14:53:12

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这样的大公司也不例外。但程序员是一种追求完美的动物,我等力求自己的代码能尽可能的完善,至少尽可能的避免一些常见漏洞。这便要求我们更加细心的去写每一行代码。