localstorage

常见WEB漏洞:HTML5安全与防御

醉酒当歌 提交于 2020-02-25 17:29:24
  常见WEB漏洞:HTML5安全与防御   1、HTML5概述   HTML5 是定义 HTML 标准的最新的版本,5的原因是它是HTML的第五次重大修改,标准于14年10月29日完成。作为HTML的升级版,它有更大的技术集,引入了新的标签、属性、方法和功能等,允许更多样化和强大的网站和应用程序。   比如说新增了<section>, <article>, <nav>, <header>等标签,再比如说新增了现在比较流行的SVG的支持,还有比如新增了Web Storage本地存储等等,更多的HTML5新增的特性就需要大家自己进一步去了解了,具体可以参考:   https://developer.mozilla.org/zh-CN/docs/Web/Guide/HTML/HTML5   安全问题一般都伴随着功能出现,所以HTML5的出现,自然而然伴随着功能就产生一些可以被利用的安全问题或者扩大了原来的一些攻击方法的攻击面或者攻击点;由于HTML5是Web标准,所以一些问题主要是集中在前端安全。   2 、新功能的引入带来的新的攻击   2.1 新标签、属性加入,拓宽攻击方法   新标签、属性的出现,对于前端攻击中基于标签、属性的一些攻击方法,比如XSS,等于多了一些新的黑名单绕过方式。最简单的方式就是特征识别,举个例子:这样一个XSS Payload:   <script

selenium获取缓存数据

跟風遠走 提交于 2020-02-22 21:34:04
爬虫呢有时候数据方便有时候登入获得cookies,以及获取他存缓存中的数据 一.获取缓存中的数据其实很简单js注入就好了 localStorage_1 = driver.execute_script("return window.localStorage.getItem('key')") #很多人说我执行了怎么没有获得呢 #那你缓存所在的url不对,你要跳转到他对应的url再获取 driver.get("缓存所在的url") localStorage_1 = driver.execute_script("return window.localStorage.getItem('key')") 来源: https://www.cnblogs.com/pythonywy/p/12346974.html

前端面试总结

别说谁变了你拦得住时间么 提交于 2020-02-20 06:10:34
<!DOCTYPE>声明位于位于HTML文档中的第一行,处于 <html> 标签之前。告知浏览器的解析器用什么文档标准解析这个文档。DOCTYPE不存在或格式不正确会导致文档以兼容模式呈现。 标准模式的排版 和JS运作模式都是以该浏览器支持的最高标准运行。在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作。 HTML5 为什么只需要写 <!DOCTYPE HTML>? HTML5 不基于 SGML,因此不需要对DTD进行引用,但是需要doctype来规范浏览器的行为(让浏览器按照它们应该的方式来运行); 而HTML4.01基于SGML,所以需要对DTD进行引用,才能告知浏览器文档所使用的文档类型。 行内元素有哪些?块级元素有哪些? 空(void)元素有那些? 首先:CSS规范规定,每个元素都有display属性,确定该元素的类型,每个元素都有默认的display值,如div的display默认值为“block”,则为“块级”元素;span默认display属性值为“inline”,是“行内”元素。 (1)行内元素有:a b span img input select strong(强调的语气)(2)块级元素有:div ul ol li dl dt dd h1 h2 h3 h4…p (3)常见的空元素: <br> <hr> <img> <input>

容易忘记的

时光怂恿深爱的人放手 提交于 2020-02-17 10:59:40
localStorage 1.localStorage (1)setItem(key , value),保存或设置数据 如果key已经存在,则覆盖key对应的value 如果不存在则添加key与value    window.localStorage.setItem('name','xiao'); (2)getItem(key); 获取key对应的value。 如果key不存在则返回null   window.localStorage.getItem('name'); (3)key(index); 获取指定下标位置的key    window.localStorage.key(0); (4)length 获取localStorage一共有多少条数据 alert(window.localStorage.length); 配合key(index)方法可以实现遍历localStorage数据的方法 (5)clear(); 将同域名下的所有localStorage数据都清空 (6 ) removeItem('key') : 删除数据,通过key来删除相应的value 2.JS新API (1) document.querySelector("selector"); 选择器返回第一个匹配到的元素,如未匹配到返回null (2)document.querySelectorAll(

HTML5 localStorageXSS漏洞

痴心易碎 提交于 2020-02-13 21:33:50
localStorage基础 Window localStorage 属性 HTML5 提供了两种新的本地存储方案,sessionStorage和localStorage,统称WebStorage。 顾名思义: sessionStorage 是针对session的数据存储,关闭窗口后删除。 localStorage 是一个本地的没有时间限制的数据存储。 它们同样遵循SOP 语法: window.localStorage 保存数据语法: localStorage的局限 1、浏览器的大小不统一,并且在IE8以上的IE版本才支持localStorage这个属性 2、目前所有的浏览器中都会把localStorage的值类型限定为string类型,这个在对我们日常比较常见的JSON对象类型需要一些转换 3、localStorage在浏览器的隐私模式下面是不可读取的 4、localStorage本质上是对字符串的读取,如果存储内容多的话会消耗内存空间,会导致页面变卡 5、localStorage不能被爬虫抓取到 localStorage与sessionStorage的唯一一点区别就是localStorage属于永久性存储,而sessionStorage属于当会话结束的时候,sessionStorage中的键值对会被清空 6、localStorage的使用也是遵循 同源策略 的

vue双向数据绑定

僤鯓⒐⒋嵵緔 提交于 2020-02-13 02:22:05
App.vue <template> <div id="app"> <input type="text" v-model="todo" v-on:keydown="keydown($event)"> <button v-on:click="add">新增</button> <br> <h2>未完成</h2> <ul> <li v-for="(item,key) in list" v-if="!item.check"> <input type="checkbox" v-model="item.check" v-on:change="saveList()"> {{item}} -------- <button v-on:click="remove(key)">删除</button> </li> </ul> <br> <h2>已完成</h2> <ul> <li v-for="(item,key) in list" v-if="item.check"> <input type="checkbox" v-model="item.check" v-on:change="saveList()"> <input type="checkbox"> {{item}} -------- <button v-on:click="remove(key)">删除</button> </li> </ul> <

HTML5 Web存储(localStorage与sessionStorage)

只谈情不闲聊 提交于 2020-02-12 21:12:02
HTML5 提供了两种在客户端存储数据的新方法:localStorage与 sessionStorage. localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的;sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。之前,这些都是由cookie完成的。但是cookie不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得cookie 速度很慢而且效率也不高。简单的说本地存储是HTML5的一部分。更为详细准确的说是本地存储过去是HTML5的标准中的一部分,而后来由于有些工作组的人表示HTML5太庞大了,于是就剥离出来作为一个单独的标准。 新建一个前端学习qun438905713,在群里大多数都是零基础学习者,大家相互帮助,相互解答,并且还准备很多学习资料,欢迎零基础的小伙伴来一起交流。 在HTML5中,数据不是由每个服务器请求传递的,而是只有在请求时使用数据。它使在不影响网站性能的情况下存储大量数据成为可能。对于不同的网站,数据存储于不同的区域,并且一个网站只能访问其自身的数据。HTML5 使用JavaScript来存储和访问数据

属性,表单,条件,循环,斗篷指令及vue的项目环境

前提是你 提交于 2020-02-12 20:45:38
斗篷指令: ​ v-cloak 避免屏幕闪烁 原理: ​ 1)属性选择器,会将v-cloak属性所在的标签隐藏 ​ 2)当vue环境加载后,会将v-clock属性解析移除,所以内容{{ num }} ​ 就会显示出来 ​ 3)而现在vue已经准备完毕,所以用户会直接看到数值10,而不会看到页面从{{ num }}闪烁成10 <title>Title</title> <style> [v-cloak]{ display: none; } </style> <body> <div id="app" v-cloak> <button v-on:click="fn">{{ num }}</button> </div> </body> <script src="js/vue.js"></script> <script> new Vue({ el:'#app', data:{ num: 10 }, methods:{ fn () { if(this.num !== 0){ this.num -= 2 }else { } } } }) </script> 属性指令: 1)语法:v-bind: 属性名=“变量” :后面不可以有空格 2)针对不同属性,使用方式有些区别 ​ 自定义属性以及title这些直接赋值的,使用方式为(t是变量, o是常量): <p class="a" style="color

11

孤者浪人 提交于 2020-02-11 19:41:23
什么是 HTML 本地存储? 通过本地存储(Local Storage),web 应用程序能够在用户浏览器中对数据进行本地的存储。 在 HTML5 之前,应用程序数据只能存储在 cookie 中,包括每个服务器请求。本地存储则更安全,并且可在不影响网站性能的前提下将大量数据存储于本地。 与 cookie 不同,存储限制要大得多(至少5MB),并且信息不会被传输到服务器。 本地存储经由起源地(origin)(经由域和协议)。所有页面,从起源地,能够存储和访问相同的数据。 HTML 本地存储对象 HTML 本地存储提供了两个在客户端存储数据的对象: window.localStorage - 存储没有截止日期的数据 window.sessionStorage - 针对一个 session 来存储数据(当关闭浏览器标签页时数据会丢失) 在使用本地存储时,请检测 localStorage 和 sessionStorage 的浏览器支持: if (typeof(Storage) !== "undefined") { // 针对 localStorage/sessionStorage 的代码 } else { // 抱歉!不支持 Web Storage .. } <!DOCTYPE html> <html> <body> <div id="result"></div> <script> //

WEB端缓存机制

早过忘川 提交于 2020-02-08 13:28:51
WEB端缓存机制 什么是WEB缓存 Web缓存是指一个Web资源(如html页面,图片,js,数据等)存在于Web服务器和客户端(浏览器)之间的副本。缓存会根据进来的请求保存输出内容的副本;当下一个请求来到的时候,如果是相同的URL,缓存会根据缓存机制决定是直接使用副本响应访问请求,还是向源服务器再次发送请求。比较常见的就是浏览器会缓存访问过网站的网页,当再次访问这个URL地址的时候,如果网页没有更新,就不会再次下载网页,而是直接使用本地缓存的网页。只有当网站明确标识资源已经更新,浏览器才会再次下载网页 数据库数据缓存 数据库数据缓存的实质就是将频繁使用的数据从数据库(硬盘)存到内存中,而内存的读取速度远远快于直接在磁盘读取的速度。至于为什么会有明显的速度差异,浅显的理解是因为内存是电存储,硬盘存储是磁存储。电的速度远远大于磁盘(相当于磁带转动的速度)的速度。即使现在出现了固态硬盘但还仅仅只是在磁盘的基础上有所提高。 服务器端缓存 代理服务器缓存 代理服务器是浏览器和源服务器之间的中间服务器,浏览器先向这个中间服务器发起Web请求,经过处理后(比如权限验证,缓存匹配等),再将请求转发到源服务器。代理服务器缓存的运作原理跟浏览器的运作原理差不多,只是规模更大。可以把它理解为一个共享缓存,不只为一个用户服务,一般为大量用户提供服务,因此在减少相应时间和带宽使用方面很有效