一、什么是XSS攻击

**XSS 即(Cross Site Scripting)中文名称为:跨站脚本攻击。**XSS的重点不在于跨站点,而在于脚本的执行。那么XSS的原理是:
恶意攻击者在web页面中会插入一些恶意的script代码。当用户浏览该页面的时候,那么嵌入到web页面中script代码会执行,因此会达到恶意攻击用户的目的。

二、防止XSS攻击

1、X-XSS-Protection设置

目前该属性被所有的主流浏览器默认开启XSS保护。该参数是设置在响应头中目的是用来防范XSS攻击的。它有如下几种配置:
值有如下几种:默认为1.
0:禁用XSS保护。
1:启用XSS保护。
1;mode=block; 启用xss保护,并且在检查到XSS攻击是,停止渲染页面。

2、XSS防御HTML编码、HTML Attribute编码

我们为什么要防御HTML编码、HTML Attribute编码呢?比如如下html代码:

content

,在div标签中存在一个输出变量content,在div标签中存在一个输出变量{content}. 那么浏览器在解析的过程中,首先是html解析,当解析到div标签时,再解析 content的内容,然后会将页面显示出来。那假如该content的内容,然后会将页面显示出来。那假如该{content} 的值是 这样的呢?因此该script脚本就会解析并且执行了,从而达到XSS的攻击目标。
因此我们需要将不可信数据放入到html标签内(比如div、span等)的时候需要进行html编码。
编码规则:将 & < > " ’ / 转义为实体字符。

3、XSS防御之javascript编码

在上面的 XSS 防御HTML Attribute编码中我们是可以防御XSS攻击,但是它只能防御的是HTML通用属性,并不是全部属性,在html中还存在很多支持协议解析的html属性,比如 onclick, onerror, href, src 等这些,类似这些属性我们是无法通过HTML编码来防范XSS攻击的。因为浏览器会先解析html编码的字符,将其转换为该属性的值,但是该属性本身支持JS代码执行,因此游览器在HTML解码后,对该属性的值进行JS解析,因此会执行响应的代码。

4、XSS 防御之 URL 编码

作用范围:将不可信数据作为 URL 参数值时需要对参数进行 URL 编码
编码规则:将参数值进行 encodeURIComponent 编码

5、XSS 防御之 CSS 编码

作用范围:将不可信数据作为 CSS 时进行 CSS 编码
比如:通过css构造(background-img:url\expression\link-href@import)

6、开启CSP网页安全政策防止XSS攻击

Content-Security-Policy 中文的意思是网页安全政策。

CSP是网页安全政策(Content Security Policy)的缩写。主要用来防止XSS攻击。是一种由开发者定义的安全性政策申明,通过CSP所约束的责任指定可信的内容来源,通过 Content-Security-Policy 网页的开发者可以控制整个页面中 外部资源 的加载和执行。

我们只需要在meta属性中设置下即可使用:如下代码:

<meta http-equiv="Content-Security-Policy" content="">

WEB安全(十五)如何防止XSS攻击相关推荐

  1. 【web系列十五】Ubuntu系统部署Web项目

    目录 写在前面 前端部署 安装nginx 编译vue工程 传输项目到服务器 修改nginx配置 修改启动用户 重启服务 打开网页 前端踩坑记录 无法使用getCurrentInstance.ctx.$ ...

  2. 第三十五天:XSS跨站反射存储DOM盲打劫持

    XSS跨站-原理&攻击&分类等 XSS跨站-反射型&存储型&DOM型等 XSS跨站-攻击手法&劫持&盗取凭据等 XSS跨站-攻击项目&XSS平台 ...

  3. 使用 jQuery Mobile 与 HTML5 开发 Web App (十五) —— jQuery Mobile 与响应式

    jQuery Mobile 在刚推出的时候,曾经宣传了几个重要的特点,除了 Kayo 在本系列文章中多次介绍的"触摸屏优化"外,另外一个最直接的特点就是"响应式设计&qu ...

  4. WEB测试番外之----XSS攻击

    1.1 什么是XSS攻击 XSS攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style. Sheets, CSS)的缩写混淆.故将跨站脚本攻击 ...

  5. 面试问题如何预防xss攻击

    1. XSS攻击原理 XSS原称为CSS(Cross-Site Scripting),因为和层叠样式表(Cascading Style Sheets)重名,所以改称为XSS(X一般有未知的含义,还有扩 ...

  6. 网站xss攻击和防止

    1.定义 •XSS又称CSS,全称CrossSiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性.其原理是攻击者向有XSS漏洞的 ...

  7. Python全栈(五)Web安全攻防之9.XSS攻击(下)

    文章目录 一.下拉框select和input的XSS攻击 1.属性中的XSS发现--下拉框select 2.HTML表单input属性 3.HTML表单隐藏参数 二.input属性和HTML事件触发X ...

  8. xss攻击-面向前端的安全攻击 ─=≡Σ(((つ•̀ω•́)つ 知己知彼百战百胜 web安全

    文章目录 XSS简介 测试环境 XSS工具步骤与分类 XSS用到的一些HTML和JS HTML表单文本框介绍 探测xss 反射型XSS 常用的反射型XSS攻击方法 闭合标签 使用下拉菜单 使用隐藏输入 ...

  9. 使用 PHP 构建的 Web 应用如何避免 XSS 攻击

    本文首先简单介绍开发测试人员如何对 Web 应用进行 XSS 漏洞测试,如何借助工具绕过客户端 JavaScript 校验输入恶意数据:然后针对使用 PHP 语言构建的 Web 站点,从在输出端对动态 ...

最新文章

  1. qt 调用离线地图_Qt编写安防视频监控系统25-离线地图
  2. 3D打印神经电极有助于将大脑连接到电脑
  3. WINCE 网卡控制
  4. 用html5交换两个变量的值,Python判断两个对象相等的原理 python交换两个变量的值为什么不用中间变量...
  5. linux tail命令_操作手册
  6. 设计模式-17-迭代器
  7. set和map去重调用什么方法_Es6中Map对象和Set对象的介绍及应用
  8. xrdp出现雪花屏,闪退怎么办?
  9. nginx+php-fpm配置后页面显示空白的解决方法以及用nginx和php-fpm解决“502 Bad Gateway”问题...
  10. java 日期相差年份_JAVA计算两个日期相差的实例
  11. pg加密扩展的安装_PHP7安装已废弃的对称加密扩展mcrypt记录
  12. es6的模块化export和import
  13. [私人] T460p上运行orbit_js报ERR_NO_ICU的问题
  14. 视频教程-HTML5基础知识实战演练教程-HTML5/CSS
  15. javaweb响应内容类型分析工具(tomcat)
  16. C#Winform实现手写录入签名与保存为透明png图片
  17. 数夫,家具行业MES软件和家具MES制造执行系统龙头企业
  18. 三菱Q系列PLC基本指令讲解
  19. spark 和 elk 技术栈对比?
  20. 【统计学】中心极限定理

热门文章

  1. 椭球面积计算程序_任意位置的椭球对着点源的立体角的解析计算
  2. freemarker根据模板生成word,并插入图片
  3. 软考信息系统项目管理师考试论文写作套路
  4. Discuz!顶置贴、帖子列表优化建议
  5. 2017-2-1-moviesandbooks
  6. http中传输“+”号转义问题
  7. 【机器学习实验五】逻辑斯蒂回归
  8. 【C语言】三子棋游戏的实现(玩家VS玩家 or 玩家VS电脑)
  9. JavaAES128对称加密算法实现
  10. Python 音频文件切割