XSS防范

Posted sunhang32

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
  • 欺骗用户
  • 窃取用户的密码和登录状态
  • 发出请求
  • 劫持前段逻辑
  • 获取页面数据
  • 影响页面布局
    那么我们如何防范呢?

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

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

    2设置HEAD

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

    3手动设置黑白名单

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

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

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

以上是关于XSS防范的主要内容,如果未能解决你的问题,请参考以下文章

XSS原理及防范

HTTP攻击与防范 |XSS-简介

简述XSS攻击及其防范措施

django-xss攻击原理与防范

PHP 防范xss攻击(转载)

xss攻击与防范