首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

浏览器工作原理 - 安全

Cookie、IndexedDB 等数据 甚至可以这些信息上传至自己服务器,在用户不知情情况下伪造一些转账请求等信息 什么是同源策略 如果两个 URL 协议、域名和端口都相同,称两个 URL...Referer CSRF Token 在浏览器向服务器发起请求时,服务器生成一个 CSRF Token,其本质是服务器生成字符串,然后将该字符串植入到返回页面中 <!...但是渲染进程并不负责图片显示到界面上,而是最终生成图片提交给浏览器内核模块,由浏览器内核模块负责显示图片。...和 service-random 后,使用相同方法 client-random 和 service-random 混合生成一个密钥 master-secret,有了密钥 master-secret...注意,pre-master 是经过公钥加密之后传输,所以黑客无获取到 pre-master,这样就无法生成密钥,以此保证黑客无法破解传输过程中数据。

53520

JavaScript IndexedDB 完整指南

本文通过一个小教程向你介绍 IndexedDB,并将 IndexedDB 与其他可用选项进行比较。...通常当服务器响应一个请求时,它们可能包含一个 SET-COOKIE 头,给浏览器一个要存储键和。然后,客户端应该在未来请求头中包含这个 cookie,这将允许服务器识别浏览器会话等。...IndexedDB 是基于事件,这符合它异步模型。接下来,让我们看看数据库启动时可能发生事件。首先,我们监听 request.onerror 事件,以防访问数据库时出现任何错误。...: clear: 删除 store 中所有记录 add:用给定 id 插入一个记录(如果它已经存在就会出错) put:用给定 id 插入或更新一个记录(如果已经存在就会更新) get:用特定 id...在互联网连接中,你可能希望 indexedDB 与外部数据库同步,以便在用户清除浏览器数据时不会丢失用户信息。

1.9K20

详解浏览器存储

cookie存储数据功能已经很难满足开发所需,逐渐被Web Storage、IndexedDB所取代,本文介绍这几种存储方式差异和优缺点。...原理及其构成 简单HTTP请求过程 第一次访问网站时候,浏览器发出请求,服务器端生成 cookie在响应中通过Set-Cookie头部告知客户端(允许多个Set-Cookie头部传递多个),客户端得到...所有类型数据都可以直接存入,包括 JavaScript 对象。对象仓库中,数据以"键值对"形式保存,每一个数据记录都有对应主键,主键是独一无二,不能有重复,否则会抛出一个错误。...异步 IndexedDB设计几乎完全是异步。为此,大多数操作以请求形式执行,这些请求会异步执行,产生成结果或错误。...("admin", 1) // 使用IndexedDB失败时监听函数 request.onerror = function(event) { console.log('无法使用IndexedDB

79010

【Web技术】630- 前端存储除了 localStorage 还有啥

Encryption:通过模式字段设置为encrypted,该字段将以加密模式存储,没有密码就无法读取。...它是使用纯 JavaScript 实现,不依赖其它库,提供 API 是 MongoDB API 子集,重要是它速度非常快: 插入:10,680 ops/s 查找:43,290 ops/s 更新...是 IndexedDB 包装库,它提供了一套经过精心设计 API,强大错误处理,较强可扩展性,此外它能够跟踪数据变化,支持 KeyRange (搜索不区分大小写,可设置匹方式和 OR 操作)。...Dexie.js 主要为了解决原生 IndexedDB API 中存在三个主要问题: 异常错误处理。 较弱查询功能。 代码复杂性。...事件确保在插入数据前对象仓库已经创建完毕 objectStore.transaction.oncomplete = function(event) { // 数据保存到新创建对象仓库

2.2K30

阿里前端常考面试题

,会使一些编写不标准网页无法正确显示。...然后⾃⼰⽣成⼀个伪造公钥,发给客户端客户端收到伪造公钥后,⽣成加密hash发给服务器中间⼈获得加密hash,⽤⾃⼰私钥解密获得真秘钥,同时⽣成假加密hash,发给服务器服务器⽤私钥解密获得假密钥...()方法产生Promise实例返回8、Promise.resolve()现有对象转为Promise对象,如果该方法参数为一个Promise对象,Promise.resolve()将不做任何处理...3)Promise缺点1、无法取消Promise,一旦新建它就会立即执行,无法中途取消。2、如果不设置回调函数,Promise内部抛出错误,不会反应到外部。...4)简单代码实现 最简单Promise实现有7个主要属性, state(状态), value(成功返回), reason(错误信息), resolve方法, reject方法, then方法class

69020

深入了解浏览器存储

cookie存储数据功能已经很难满足开发所需,逐渐被WebStorage、IndexedDB所取代,本文介绍这几种存储方式差异和优缺点。...cookie,根据cookie内容就可以判断和恢复一些用户信息状态。...3.Cookie原理及生成方式 Cookie原理 第一次访问网站时候,浏览器发出请求,服务器响应请求后,会在响应头里面添加一个Set-Cookie选项,cookie放入到响应请求中,在浏览器第二次发请求时候...Cookie生成方式主要有两种: 生成方式一:http response header中set-cookie 我们可以通过响应头里 Set-Cookie 指定要存储 Cookie 。...对象仓库中,数据以"键值对"形式保存,每一个数据记录都有对应主键,主键是独一无二,不能有重复,否则会抛出一个错误

54830

前端存储除了 localStorage 还有啥

Encryption:通过模式字段设置为encrypted,该字段将以加密模式存储,没有密码就无法读取。...它是使用纯 JavaScript 实现,不依赖其它库,提供 API 是 MongoDB API 子集,重要是它速度非常快: 插入:10,680 ops/s 查找:43,290 ops/s 更新...https://github.com/dfahlander/Dexie.js ❞ Dexie.js 是 IndexedDB 包装库,它提供了一套经过精心设计 API,强大错误处理,较强可扩展性...Dexie.js 主要为了解决原生 IndexedDB API 中存在三个主要问题: 异常错误处理。 较弱查询功能。 代码复杂性。...事件确保在插入数据前对象仓库已经创建完毕 objectStore.transaction.oncomplete = function(event) { // 数据保存到新创建对象仓库

2.3K30

基础| 实现网页瞬开,indexedDB这几个基本操作你必须懂

现在,我们通过事务向数据库indexedDB-test 对象存储空间movies中插入数据: 通过事务对象transaction,在objectStore()方法中指定对象存储空间,就得到了可以对该对象存储空间进行操作对象...向数据库中增加数据,add()方法增加对象,若是数据库中已存在相同主键,或者唯一性索引键值重复,则该条数据不会插入进去; 增加数据还有一个方法: put(), 使用方法和add()不同之处在于,数据库中若存在相同主键或者唯一性索引重复...,则会更新该条数据,否则插入新数据。...我们向数据库中插入一条数据,使title重复: 使用索引title获取title为寻梦环游记对象: 我们得到是键值最小那个对象....七、关闭和删除数据库 关闭数据库只需要在数据库对象db上调用close()方法即可 db.close(); 关闭数据库后,db对象仍然保存着该数据库相关信息,只是无法再开启事务(调用开启事务方法会报错

2.3K10

JavaScript IndexedDB 完整指南

JavaScript IndexedDB 完整指南 本文通过一个小教程向你介绍 IndexedDB,并将 IndexedDB 与其他可用方式进行比较。...通常当服务器响应一个请求时,它们可能包含一个 SET-COOKIE 头,给浏览器一个要存储键和。然后,客户端应该在未来请求头中包含这个 cookie,这将允许服务器识别浏览器会话等。...IndexedDB 是基于事件,这符合它异步模型。接下来,让我们看看数据库启动时可能发生事件。首先,我们监听request.onerror事件,以防访问数据库时出现任何错误。...: clear: 删除 store 中所有记录 add:用给定 id 插入一个记录(如果它已经存在就会出错) put:用给定 id 插入或更新一个记录(如果已经存在就会更新) get:用特定 id...在互联网连接中,你可能希望 indexedDB 与外部数据库同步,以便在用户清除浏览器数据时不会丢失用户信息。 4. 小结 IndexedDB 在浏览器中为你提供了一个功能强大异步文档数据库。

1.5K10

indexedDB 基本使用

现在,我们通过事务向数据库indexedDB-test 对象存储空间movies中插入数据: varobjectStore=transaction.objectStore('movies');// 指定对象存储空间...,则会更新该条数据,否则插入新数据。...title属性 primaryKey 数据库中这条对象alt value 数据库中这条对象 direction openCursor()方法传入第二个对象,默认为next source IDBIndex...属性 primaryKey 数据库中这条对象alt direction openCursor()方法传入第二个对象,默认为next source altBIndex对象 和openCursor...,只是无法再开启事务(调用开启事务方法会报错,提示数据库连接已断开): 删除数据库则需要使用indexedDB.deleteDatabase(dbName)方法 window.indexedDB.deleteDatabase

1.6K100

HTML5学习-day02【悟空教程】

不过,JavaScript修改location除hash外任意属性,页面都会以新URL重新加载。而唯一不引发刷新hash参数并不会发送到服务器,因此服务器无法获得状态。...调用pushState()方法生成一条历史记录,方便用浏览器“后退”和“前进”来导航(“后退”可是相当常用按钮)。...history.replaceState() 它和history.pushState()方法基本相同,区别只有一点,history.replaceState()不会新生成历史记录,而是当前历史记录替换掉...manifest列举资源过程中发生致命错误在更新过程中manifest文件发生变化用户代理会尝试立即再次获取文件  属性:status 返回缓存状态 可选匹配常量描述0appCache.UNCACHED...指定属性则不生成键值,如果没有自动生成递增键值,填充keyPath指定属性 ?

1.7K30

JavaScript是如何工作:存储引擎+如何选择合适存储API

浏览器中结构化数据存储一个代表例子是 IndexedDB。 Key/Value: 键/ 数据存储和相关 NoSQL 数据库提供了存储和检索由唯一键索引非结构化数据能力。...opt_errorCallback: 用于处理错误或获取文件系统请求遭到拒绝时可选回调,其参数为 FileError 对象。...result 属性尤其神奇,他可以根据“请求”生成方式变成不同东西,例如:IDBCursor 实例、刚插入数据库数值对应键值(key)等。...IndexedDB是面向对象indexedDB 不是用二维表来表示集合关系型数据库,这一点非常重要,影响你设计和建立你应用程序。...要存储应用程序状态和用户生成内容,请使用IndexedDB。这使得用户可以在更多浏览器中离线工作,而不仅仅是那些支持缓存API浏览器。

1.6K10

用NW.js构建跨平台桌面应用(4)-数据持久化

与web开发中主要将数据保存在服务器端不同(cookie中仅保存极少量信息且会过期),数据持久化(Data Persistence)是本地应用开发中常见需求,通俗讲就是瞬时数据(比如内存中数据,...及其相关标准中提供WebSQL、WebStorage、IndexedDB等方案,甚至直接简单数据保存到本地文件中 [I]....): 管理并顺序执行若干条SQL语句容器,可以嵌套 错误回调:每条 SQL statement 及其所处 transaction 都有各自错误回调,用于精细或集约捕获错误并引发回滚 回滚(roll...back):错误发生时撤销单条语句或整个事务操作 可以在 DevTools->Application->Storage->Web SQL 标签页中查看已存储数据 3.2 常用方法 openDatabase...} console.log(data); } ); }); //向一个假定并不存在表里插入数据

2K20

【HTML5】296- 重新复习 HTML5 5大存储方式

browser does NOT support localStorage'); } 常用API: 取记录: getItem; 设置记录: setIten; 移除记录: removeItem; 取 key所对应...4 (UPDATEREADY) : 更新完成,所有资源都已下载完毕 5 (IDLE) : 废弃,即应用缓存描述文件已经不存在了,因此页面无法再访问应用缓存 相关事件: 表示应用缓存状态改变。...如果manifest文件,或者内部列举某一个文件不能正常下载,整个更新过程视为失败,浏览器继续全部使用老缓存 3....IndexedDB 索引数据库 (IndexedDB) API(作为 HTML5 一部分)对创建具有丰富本地存储数据数据密集型离线 HTML5 Web 应用程序很有用。...我们可以使用每条记录中某个指定字段作为键值( keyPath ),也可以使用自动生成递增数字作为键值( keyGenerator ),也可以不指定。

81730

美团开源Logan Web:前端日志在Web端实现

对用户端开发者来说,本地无法复现问题好比“断了线风筝”,让人无计可施。...但 IndexedDB API 在使用上会遇到如下几个问题: (1)DB 版本升级问题 本地 DB 依靠版本升级来更新库表结构,当本地该 DB 版本升级后,尝试连接低版本 DB 操作失败。...当本地库表不存在时,DB Manager 会阻止对该 DB 连接,直接返回空数据,避免了错误库表结构污染本地 DB。...3.3 日志加密方案:混合加密 混合加密方式吸取了对称加密与非对称加密各自优势: 对称加密:保证对长内容加密效率。 非对称加密:保证对称密钥安全性。...在存储每条具有私密性日志前都会经历以下加密流程: 准备对称密钥与初始向量:随机产生 AES 对称密钥 AES Key 及初始向量 IV。

1.4K20

【前端监控】离线日志

用户没有网络时候,日志数据无法上传,为了防止日志丢失,会在用户端存一份离线日志数据,等待网络恢复时候,重新上传。 第二,优化上报日志过多。...存取操作都是异步,不会锁死浏览器,利于大数据读写,而 localstorage 则是同步 3、同源策略。网页只能访问自身域名下indexdb,无法跨域访问 4、存储空间大。...", "log_type", { unique: false } ); } 看下我们创建索引 4、插入数据 插入数据,我们需要监听success 事件,在 连接数据库返回实例中...3、上报请求错误了,存本地 其中怎么判断用户离线呢? 通过 window.navigator.onLine ,这个属性为true表示设备在线,为false表示设备离线。...但是设备在线,并不包括网络差情况,为了不再网络差时候占用用户网速,我们会加多一个另外判断。 如果 15s 内上报错误大于3,那么数据会存在本地,会设置一个15s 定时器去重置错误次数。

1.6K40
领券