WEB安全(十五)如何防止XSS攻击
一、什么是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代码:
,在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攻击相关推荐
- 【web系列十五】Ubuntu系统部署Web项目
目录 写在前面 前端部署 安装nginx 编译vue工程 传输项目到服务器 修改nginx配置 修改启动用户 重启服务 打开网页 前端踩坑记录 无法使用getCurrentInstance.ctx.$ ...
- 第三十五天:XSS跨站反射存储DOM盲打劫持
XSS跨站-原理&攻击&分类等 XSS跨站-反射型&存储型&DOM型等 XSS跨站-攻击手法&劫持&盗取凭据等 XSS跨站-攻击项目&XSS平台 ...
- 使用 jQuery Mobile 与 HTML5 开发 Web App (十五) —— jQuery Mobile 与响应式
jQuery Mobile 在刚推出的时候,曾经宣传了几个重要的特点,除了 Kayo 在本系列文章中多次介绍的"触摸屏优化"外,另外一个最直接的特点就是"响应式设计&qu ...
- WEB测试番外之----XSS攻击
1.1 什么是XSS攻击 XSS攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style. Sheets, CSS)的缩写混淆.故将跨站脚本攻击 ...
- 面试问题如何预防xss攻击
1. XSS攻击原理 XSS原称为CSS(Cross-Site Scripting),因为和层叠样式表(Cascading Style Sheets)重名,所以改称为XSS(X一般有未知的含义,还有扩 ...
- 网站xss攻击和防止
1.定义 •XSS又称CSS,全称CrossSiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性.其原理是攻击者向有XSS漏洞的 ...
- Python全栈(五)Web安全攻防之9.XSS攻击(下)
文章目录 一.下拉框select和input的XSS攻击 1.属性中的XSS发现--下拉框select 2.HTML表单input属性 3.HTML表单隐藏参数 二.input属性和HTML事件触发X ...
- xss攻击-面向前端的安全攻击 ─=≡Σ(((つ•̀ω•́)つ 知己知彼百战百胜 web安全
文章目录 XSS简介 测试环境 XSS工具步骤与分类 XSS用到的一些HTML和JS HTML表单文本框介绍 探测xss 反射型XSS 常用的反射型XSS攻击方法 闭合标签 使用下拉菜单 使用隐藏输入 ...
- 使用 PHP 构建的 Web 应用如何避免 XSS 攻击
本文首先简单介绍开发测试人员如何对 Web 应用进行 XSS 漏洞测试,如何借助工具绕过客户端 JavaScript 校验输入恶意数据:然后针对使用 PHP 语言构建的 Web 站点,从在输出端对动态 ...
最新文章
- qt 调用离线地图_Qt编写安防视频监控系统25-离线地图
- 3D打印神经电极有助于将大脑连接到电脑
- WINCE 网卡控制
- 用html5交换两个变量的值,Python判断两个对象相等的原理 python交换两个变量的值为什么不用中间变量...
- linux tail命令_操作手册
- 设计模式-17-迭代器
- set和map去重调用什么方法_Es6中Map对象和Set对象的介绍及应用
- xrdp出现雪花屏,闪退怎么办?
- nginx+php-fpm配置后页面显示空白的解决方法以及用nginx和php-fpm解决“502 Bad Gateway”问题...
- java 日期相差年份_JAVA计算两个日期相差的实例
- pg加密扩展的安装_PHP7安装已废弃的对称加密扩展mcrypt记录
- es6的模块化export和import
- [私人] T460p上运行orbit_js报ERR_NO_ICU的问题
- 视频教程-HTML5基础知识实战演练教程-HTML5/CSS
- javaweb响应内容类型分析工具(tomcat)
- C#Winform实现手写录入签名与保存为透明png图片
- 数夫,家具行业MES软件和家具MES制造执行系统龙头企业
- 三菱Q系列PLC基本指令讲解
- spark 和 elk 技术栈对比?
- 【统计学】中心极限定理