网站安全之XSS

XSS算是个老生常谈的问题了,也是网站安全里比较重要的一个安全性问题。
XSS中文是跨站脚本攻击,英文是Cross Site Scripting,不叫CSS是因为怕和层叠样式表(CSS)搞乱了,所以改成了XSS。但是为啥改成了X而不是别的字母我就不知道了。
就是这个攻击说白了就是在你网站插入了一段别人伪造的Script脚本。而存在跨站攻击有这么几种情况:

  1. 反射型: 诱导客户访问指定连接,指定链接中某些参数的值是一段脚本命令,目标网页没有对该参数的值进行处理
  2. 存储型: 对用户传过来的值没有过滤存在数据库中,每个用户访问对应页面时将数据库中的内容原样输出
  3. DOM型: 这个我觉得和第1种是一个原理和意思

这个问题我觉得不是很难处理,记住一个原则就可以了。

用户的输入都是不可信的!

这句话还是我实习面试时的时候一个面试官教我的,对我的影响很深远。有很长一个阶段我没完全理解这句话。不信用户输入为啥用户输?哈哈。。。

对于服务端:

  1. 对用户(包括管理员)的任何输入都要进行 适度 的处理,不放过任何一个可能会产生被攻击的细节。防御考虑的角度是对应功能需要什么样的安全性控制,而不是考虑使用者是谁。
  2. Cookie设置为http-only, 防止脚本获取

对于客户端:

  1. 对于用户传输给服务端对额数据进行处理(这个只能解决一部分问题,如果服务端疏忽了,那还是存在被攻击的风险)
  2. 对于网址中携带的参数要进行过滤再插入到网页中
  3. 对于展现在网站中的内容进行转义后再显示。比如在Vue中使用v-text代替v-html。对于富文本内容还是需要靠服务端处理好。

发表评论

电子邮件地址不会被公开。 必填项已用*标注