Web安全之XSS攻击与防御小结


Posted in Javascript onDecember 13, 2018

Web安全之XSS攻防

1. XSS的定义

跨站脚本攻击(Cross Site Scripting),缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

2. XSS的原理

  • 攻击者对含有漏洞的服务器发起XSS攻击(注入JS代码)。
  • 诱使受害者打开受到攻击的服务器URL。
  • 受害者在Web浏览器中打开URL,恶意脚本执行。

3. XSS的攻击方式

(1)反射型: 发出请求时,XSS代码出现在URL中,作为输入提交到服务器端,服务器端解析后响应,XSS随响应内容一起返回给浏览器,最后浏览器解析执行XSS代码,这个过程就像一次发射,所以叫反射型XSS。

(2)存储型: 存储型XSS和反射型的XSS差别就在于,存储型的XSS提交的代码会存储在服务器端(数据库,内存,文件系统等),下次请求目标页面时不用再提交XSS代码。

4. XSS的防御措施

(1)编码:对用户输入的数据进行HTML Entity编码

Web安全之XSS攻击与防御小结 

(2)过滤:移除用户上传的DOM属性,如onerror等,移除用户上传的style节点,script节点,iframe节点等。

(3)校正:避免直接对HTML Entity编码,使用DOM Prase转换,校正不配对的DOM标签。

5. 应用示例

构建node应用,演示反射型XSS攻击。(Linux操作系统中)

本例子的代码地址:https://github.com/Xganying/Web-XSS (xss_test1)

(1) 新建一个文件夹xss: mkdir xss_test1

(2) 切换目录到该文件夹下: cd xss

(3) 安装express: express -e ./

Web安全之XSS攻击与防御小结

(4) 构建应用依赖: npm install

Web安全之XSS攻击与防御小结

(5) 打开构建好的node应用,得到目录:

Web安全之XSS攻击与防御小结

(6) 开启node服务:npm start

Web安全之XSS攻击与防御小结

(7) 在浏览器地址栏输入:localhost:3000 ,得到:

Web安全之XSS攻击与防御小结

(8) 加入xss

修改xss_test1文件routers目?下的index.js文件:

Web安全之XSS攻击与防御小结

修改xss_test1文件views目录下的index.ejs文件:

Web安全之XSS攻击与防御小结

(9) 重启node服务:npm start ,打开浏览器

a. 在地址栏输入: localhost:3000/?xss=hello

运行结果得到:

Web安全之XSS攻击与防御小结

b. 在地址栏输入:localhost:3000/?xss=<img src="null" onerror="alert(1)">

运行结果得到:

Web安全之XSS攻击与防御小结

说明: 如果代码中没有 res.set('X-XSS-Protection', 0); 则会发现没有弹出框,这是因为浏览器自动设置了拦截XSS,所以onerror事件并不会执行,而加上了:res.set('X-XSS-Protection', 0); 才会出现弹框,这才完成了一次xss攻击。

c. 在地址栏输入:localhost:3000/?xss=<p onclick="alert(%点我%)">点我</p>

运行结果得到:

Web安全之XSS攻击与防御小结

说明: 这种攻击就是常用于篡改页面内容,破坏页面结构,引诱用户去点击一些钓鱼等网站的手段。

d. 在地址栏输入:localhost:3000/?xss=<iframe src="//baidu.com/t.html"></iframe>

运行结果得到:

Web安全之XSS攻击与防御小结

说明:这种攻击就常用于广告植入等。

简单总结就是: img标签是自动触发而受到攻击的,p标签是引诱出发而受到攻击的的,而iframe则是广告植入攻击的。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js用图作提交按钮或超连接
Mar 26 Javascript
javascript时间自动刷新实现原理与步骤
Jan 06 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
Jul 08 Javascript
jQuery之过滤元素操作小结
Nov 30 Javascript
$.each遍历对象、数组的属性值并进行处理
Jul 18 Javascript
使用mouse事件实现简单的鼠标经过特效
Jan 30 Javascript
前端实现文件的断点续传(前端文件提交+后端PHP文件接收)
Nov 04 Javascript
深入理解vue中的slot与slot-scope
Apr 22 Javascript
node.js ws模块搭建websocket服务端的方法示例
Apr 25 Javascript
微信小程序封装自定义弹窗的实现代码
May 08 Javascript
Vue Element UI + OSS实现上传文件功能
Jul 31 Javascript
JavaScript枚举选择jquery插件代码实例
Nov 17 jQuery
JavaScript实现邮箱后缀提示功能的示例代码
Dec 13 #Javascript
深入理解js A*寻路算法原理与具体实现过程
Dec 13 #Javascript
Vue.js上传图片到阿里云OSS存储的方法示例
Dec 13 #Javascript
JS/HTML5游戏常用算法之路径搜索算法 随机迷宫算法详解【普里姆算法】
Dec 13 #Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【凹多边形的分离轴检测算法】
Dec 13 #Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【矩形情况】
Dec 13 #Javascript
详解Express笔记之动态渲染HTML(新手入坑)
Dec 13 #Javascript
You might like
php配置php-fpm启动参数及配置详解
2013/11/04 PHP
php使用pdo连接mssql server数据库实例
2014/12/25 PHP
discuz目录文件资料汇总
2014/12/30 PHP
在Nginx上部署ThinkPHP项目教程
2015/02/02 PHP
php实现专业获取网站SEO信息类实例
2015/04/02 PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
2016/08/17 PHP
使用PHPWord生成word文档的方法详解
2019/06/06 PHP
jquery实现图片翻页效果
2013/12/23 Javascript
javascript的alert box在java中如何显示多行
2014/05/18 Javascript
一个奇葩的最短的 IE 版本判断JS脚本
2014/05/28 Javascript
jQuery+HTML5美女瀑布流布局实现方法
2015/09/21 Javascript
利用jQuery设计一个简单的web音乐播放器的实例分享
2016/03/08 Javascript
JS实现n秒后自动跳转的两种方法
2020/11/30 Javascript
JS实现动画兼容性的transition和transform实例分析
2016/12/13 Javascript
JS百度地图搜索悬浮窗功能
2017/01/12 Javascript
JavaScript实现图像模糊化的方法实例
2017/01/15 Javascript
详解闭包解决jQuery中AJAX的外部变量问题
2017/02/22 Javascript
详解用vue.js和laravel实现微信授权登陆
2017/06/23 Javascript
详解使用vscode+es6写nodejs服务端调试配置
2017/09/21 NodeJs
javascript按顺序加载运行js方法
2017/12/01 Javascript
vue项目总结之文件夹结构配置详解
2017/12/13 Javascript
Jquery如何使用animation动画效果改变背景色的代码
2020/07/20 jQuery
在Uni中使用Vue的EventBus总线机制操作
2020/07/31 Javascript
python 排列组合之itertools
2013/03/20 Python
Python进行数据科学工作的简单入门教程
2015/04/01 Python
利用Python yagmail三行代码实现发送邮件
2018/05/11 Python
75条笑死人的知乎神回复,用60行代码就爬完了
2019/05/06 Python
Python对接六大主流数据库(只需三步)
2019/07/31 Python
python实现人像动漫化的示例代码
2020/05/17 Python
欧洲第一的摇滚和金属乐队服装网站:EMP
2017/10/26 全球购物
adidas爱尔兰官方网站:阿迪达斯运动鞋和运动服
2019/11/01 全球购物
中职应届生会计求职信
2013/10/23 职场文书
初中生自我评价
2014/02/01 职场文书
团结就是力量演讲稿
2014/05/21 职场文书
协会周年庆活动方案
2014/08/26 职场文书
试用1103暨1103、1101同门大比武 [ DAIWEI ]
2022/04/05 无线电