XSS攻击:Cross Site Scripting(跨站脚本攻击)

XSS攻击原理:程序+数据=结果,如果数据中包含了一部分程序,那么结果就会执行不属于站点的程序。

XSS攻击能干什么?能注入Script标签注入程序,那么所有JS能干的事情攻击者都能干,比如如下一些操作:

1、获取页面数据,偷取网站任意数据

2、获取Cookies,偷取用户资料、偷取用户密码和登录态

3、劫持前端逻辑,欺骗用户

4、发送请求

XSS分类:

1、反射型:url参数直接注入

反射型需要将url发给别人进行传播,别人点开url才能进行攻击,如果要迷惑别人一般会转换成短链,让别人看不出时进行了XSS攻击的url。

2、存储型:存储到数据库后读取时注入

存储型危害更大,因为可以做到用户无感知,而且只要访问过页面的用户都会受到攻击,传播方式更广。

XSS攻击注入点:

1、HTML节点内容

2、HTML属性

3、Javascript代码

4、富文本

XSS防御:

(一)转义手段防御

1、浏览器自带防御机制,将url一些简单的输入进行拦截。只拦截反射型攻击,以及注入在节点和属性中的攻击。

2、HTML节点内容防御:将<和>两个符号转义成&lt;和&gt;。转义时机有在存入数据库和读取后显示两个时间点进行。

3、HTML属性防御:"引号转义成&quto;,'单引号转义成',空格转义成 ,因为HTML属性可以不加引号,如果不对空格转义,那写代码必须带上引号写属性值。

HTML内容和属性的防御可以合并成一个方法,因为转义的字符都互不影响对应结果。

HTML5之后就没有对&符号进行转义,如果要更加安全就将&符号转义成&amp;

4、Javascript代码防御:\\转义成\\\\,”引号转义成\\“,JS需要转义的字符有很多,可以用JSON.stringify()方法来进行字符串转义。

5、富文本防御:

  (1)按黑名单过滤不能写入的标签属性,实现简单只需正则表达式进行过滤,弊端是因为html太庞大,容易疏忽造成漏洞。

  (2)按白名单保留部分标签和属性,优势是过滤比较彻底,但是实现难度比较大,需要先解析成dom树,然后过滤生成新的内容。而且白名单过滤的属性标签可能会对业务造成一定的影响,需要进行平衡。

    npm install xss,这个包是别人写好的xss白名单库。

(二)CSP,Content Security Policy内容安全策略

用于指定哪些内容可执行,通过http-header进行配置可信任的内容。

Content-Security-Policy配置以下属性加对应属性的策略值。

child-src,connect-src,default-src

font-src,frame-src,img-src

manifest-src,media-src,object-src

script-src,style-src,worker-src

前端网络安全——前端XSS的更多相关文章

  1. 前端网络安全——前端CSRF

    CSRF:Cross Site Request Forgy(跨站请求伪造) 用户打开另外一个网站,可以对本网站进行操作或攻击.容易产生传播蠕虫. CSRF攻击原理: 1.用户先登录A网站 2.A网站确 ...

  2. 前端安全(XSS、CSRF防御)

    一.网络安全          OWASP:开放式Web应用程序安全项目(OWASP,Open Web Application Security Project)        OWASP是一个开源的 ...

  3. Web前端 Web前端和Web后端的区分

    一.绪论 1. 前台:呈现给用户的视觉和基本的操作. 后台:用户浏览网页时,我们看不见的后台数据跑动.后台包括前端.后端. 前端:对应我们写的html.css.javascript 等网页语言作用在前 ...

  4. 后端把Long类型的数据传给前端,前端可能会出现精度丢失的情况,以及解决方案

    后端把Long类型的数据传给前端,前端可能会出现精度丢失的情况.例如:201511200001725439这样一个Long类型的整数,传给前端后会变成201511200001725440. 解决方法: ...

  5. web标准 浏览器介绍 开发工具介绍 HTML介绍 HTML颜色介绍 规范 HTML结构详解 {前端之前端初识}

    前端之前端初识   前端初识 本节目录 一 web标准 二 浏览器介绍 三 开发工具介绍 四 HTML介绍 五 HTML颜色介绍 六 规范 七 HTML结构详解 一 web标准 web准备介绍: 1. ...

  6. 好程序员web前端分享前端学习路线自学如何找到工作

    好程序员web前端分享前端学习路线自学如何找到工作,自学能不能学会WEB前端并且找到WEB前端开发岗位的工作取决于自身条件,如果基础好,自律性强那么将会容易很多,还有就是自学最难克服的并不是知识点,而 ...

  7. day 41 前端之前端初识

    前端之前端初识   前端初识 本节目录 一 web标准 二 浏览器介绍 三 开发工具介绍 四 HTML介绍 五 HTML颜色介绍 六 规范 七 HTML结构详解 一 web标准 web准备介绍: 1. ...

  8. 微前端 & 微前端实践 & 微前端教程

    微前端 & 微前端实践 & 微前端教程 微前端 micro frontends https://micro-frontends.org/ https://github.com/neul ...

  9. 前端安全之XSS攻击

    XSS(cross-site scripting跨域脚本攻击)攻击是最常见的Web攻击,其重点是“跨域”和“客户端执行”.有人将XSS攻击分为三种,分别是: 1. Reflected XSS(基于反射 ...

随机推荐

  1. 『现学现忘』Docker相关概念 — 1、云计算概念

    目录 1.云计算的概念 2.示例说明云计算 3.小故事说明云计算 "云计算"这个词,相信大家都非常熟悉. 作为信息科技发展的主流趋势,它频繁地出现在我们的眼前.伴随它一起出现的,还 ...

  2. jq获取不包含某些属性的元素

    最近写项目,有个功能实现checkbox全选,但是被禁用的checkbox不能选中 点击全选后发现禁用checkbox的也被选中了,不符合需求. 但是想了半天,属性选择器都是判断某个属性值的,没有判断 ...

  3. 矩池云 | 高性价比的GPU租用深度学习平台

    矩池云是一个专业的国内深度学习云平台,拥有着良好的深度学习云端训练体验.在性价比上,我们以 2080Ti 单卡为例,36 小时折扣后的价格才 55 元,每小时单价仅 1.52 元,属于全网最低价.用户 ...

  4. CSS简介,基础选择器,字体属性,文本属性

    欢迎大家去博客冰山一树Sankey,浏览效果更好.直接右上角搜索该标题即可 博客园主页:博客园主页-冰山一树Sankey CSDN主页:CSDN主页-冰山一树Sankey 前端学习:学习地址:黑马程序 ...

  5. 面试官:Redis中集合数据类型的内部实现方式是什么?

    虽然已经是阳春三月,但骑着共享单车骑了这么远,还有有点冷的.我搓了搓的被冻的麻木的手,对着前台的小姐姐说:"您好,我是来面试的."小姐姐问:"您好,您叫什么名字?&quo ...

  6. laravel 7 H_ui ajax添加入库及前端jQuery Validate验证+后端验证

    1:引入 H-ui 用户添加页面,并修改script对应的src,添加input框的name属性值 <!DOCTYPE HTML> <html> <head> &l ...

  7. tensorflow源码解析之framework-resource

    目录 什么是resource 如何使用resource 如何管理resource 常用resource 其它结构 关系图 涉及的文件 迭代记录 1. 什么是resource 我们知道,TF的计算是由设 ...

  8. 认识变量(python)

    一.变量定义 1.1使用规范:先定义,后使用 1.2由三部分组成:变量名,赋值符号,变量值 1.3定义变量就是申请一个内存空间,python内部优化机制,对于数据量小的申请,就不重复开内存空间 二.变 ...

  9. app自动化toast信息获取

    移动端测试比较常遇到toast类型的提示信息,那么对于这类信息我们要怎么获取呢,让我细细道来: 首先,获取toast信息要注意以下几点: 必须是Uiautomator2框架,设备配置参数中设置 &qu ...

  10. 使用dom4j处理xml文件

    1.项目中加入dom4j的jar 2.基本的读取xml文件为Document对象:将Document对象写入到指定文件中 package com.ricoh.rapp.deploymenttool.u ...