XSS跨站脚本攻击以及防御方式讲解

XSS全称Cross Site Scripting

跨站脚本攻击

  • XSS (Cross-Site Scripting),跨站脚本攻击,因为缩写和 CSS重叠,所以只能叫 XSS。跨站脚本攻击是指通过存在安全漏洞的Web网站注册用户的浏览器内运行非法的HTML标签或JavaScript进行的一种攻击。
    说白了: 就是往页面里面去追加html或者js

造成的影响有:

  • 利用虚假输入表单骗取用户的个人信息。
  • 利用脚本窃取用户的Cookie值,被害者在不知情的情况下,帮助攻击者发送恶意请求。
  • 显示伪造的文章或图片。

XSS的分类

  • 反射型
    通过url直接注入,可以获取到cookie等等
http://localhost:3000/?from=<script src="xxx">  //例如这段脚本
  • 存储型
    存储到DB后读取时注入
    比如先利用cookie登录到账号之后,把一段脚本注入到评论里面,那么以后输入评论或者刷新页面都会自动去执行这个脚本

XSS有哪些危害呢

  • 获取cookies
  • 欺骗用户
  • 窃取用户的密码和登录状态
  • 发出请求
  • 劫持前段逻辑
  • 获取页面数据
  • 影响页面布局

那么我们如何防范呢?

一般的组件现在都可以防范

比如vue可以设置 v-html直接让他过滤掉html文本

设置HEAD

ctx.set('X-XSS-Protection', 0) // 禁用XSS过滤

手动设置黑白名单

比如说通过字符串去过滤接收到的字符串内容

这是预防XSS攻击窃取用户cookie最有效的防御⼿段。Web应用程序在设置cookie时,将其属性设为HttpOnly,就可以避免该用户的cookie被客户端恶意JavaScript窃取,保护用户cookie信息。(一般情况下默认开启的)
使用: response.addHeader("Set-Cookie", "uid=112; Path=/; HttpOnly")

总结一句话: XSS是一种最基本的攻击方式,就是网页面去追加html和js,目前主流的框架都已经提供了或者默认了防御

posted @ 2019-11-15 13:03  残梦a  阅读(1381)  评论(0)    收藏  举报