面试题
XSS攻击是什么?

XSS 攻击是什么?

  • Cross Site Script,跨站脚本攻击。是指攻击者在网站上注入恶意script代码, 通过恶意脚本对客户端网页进行篡改,从而在用户浏览网页时,对用户浏览器进行控制或者获取用户隐私数据的一种攻击方式。 比如攻击者在社区或论坛上写下一篇包含恶意 JavaScript 代码的文章或评论,文章或评论发表后,所有访问该文章或评论的用户, 都有可能在他们的浏览器中执行这段恶意的 JavaScript 代码。

XSS攻击分为:

  • 反射式,例如php
  • 存储式
  • dom式,例如js
<a href="$var">test</a>
<a href="" onclick=alert(1) \">test</a>

如何防范XSS攻击?*

对输入(和URL参数)进行过滤,对输出进行编码。

  • 对提交的所有内容进行过滤,对url中的参数进行过滤,过滤掉会导致脚本执行的相关内容,例如过滤掉<script>标签;
  • 对动态输出到页面的内容进行html编码,使脚本无法在浏览器中执行,例如半角字符直接替换成全角字符,转义特殊字符。