HTML5安全风险详析之二:Web Storage攻击

HTML5支持WebStorage,开发者可以为应用创建本地存储,存储一些有用的信息。例如LocalStorage可以长期存储,而且存放空间很大,一般是5M,极大的解决了之前只能用Cookie来存储数据的容量小、存取不便、容易被清除的问题。这个功能为客户端提供了极大的灵活性。

一、WebStorage简介

HTML5支持WebStorage,开发者可以为应用创建本地存储,存储一些有用的信息。例如LocalStorage可以长期存储,而且存放空间很大,一般是5M,极大的解决了之前只能用Cookie来存储数据的容量小、存取不便、容易被清除的问题。这个功能为客户端提供了极大的灵活性。

二、攻击方式

LocalStorage的API都是通过Javascript提供的,这样攻击者可以通过XSS攻击窃取信息,例如用户token或者资料。攻击者可以用下面的脚本遍历本地存储。

  1. 01.if(localStorage.length){
  2. 02.         for(I in localStorage) {
  3. 03.                   console.log(i);
  4. 04.                   console.log(localStorage.getItem(i));
  5. 05.         }
  6. 06.}

同时要提一句,LocalStorage并不是唯一暴露本地信息的方式。我们现在很多开发者有一个不好的习惯,为了方便,把很多关键信息放在全局变量里,例如用户名、密码、邮箱等等。数据不放在合适的作用域里会带来严重的安全问题,例如我们可以用下面的脚本遍历全局变量来获取信息。

    • 01.for(iin window) {
    • 02.         obj=window[i];
    • 03.         if(obj!=null||obj!=undefined)
    • 04.             var type =typeof(obj);
    • 05.         if(type=="object"||type=="string") {
    • 06.             console.log(“Name:”+i);
    • 07.             try {
    • 08.                 my = JSON.stringify(obj);
    • 09.                 console.log(my);
    • 10.             } catch(ex) {}
    • 11.         }
    • 12.}

三、攻击工具

HTML5dump的定义是“JavaScriptthat dump all HTML5 local storage”,它也能输出HTML5 SessionStorage、全局变量、LocalStorage和本地数据库存储。

四、防御之道

对于WebStorage攻击的防御措施是:

1、数据放在合适的作用域里

例如用户sessionID就不要用LocalStorage存储,而需要放在sessionStorage里。而用户数据不要储存在全局变量里,而应该放在临时变量或者局部变量里。

2、不要存储敏感的信息

因为我们总也无法知道页面上是否会存在一些安全性的问题,一定不要将重要的数据存储在WebStorage里。

时间: 2024-12-17 10:28:35

HTML5安全风险详析之二:Web Storage攻击的相关文章

HTML5安全风险详析之五:劫持攻击

本文我们要讲到一类的HTML5安全问题,也就是劫持的问题. 下面我们要讲到一类的HTML5安全问题,也就是劫持的问题. 一.ClickJacking-点击劫持 这种攻击方式正变得越来越普遍.被攻击的页面作为iframe,用Mask的方式设置为透明放在上层,恶意代码偷偷地放在后面的页面中,使得一个页面看起来似乎是安全的,然后诱骗用户点击网页上的内容,达到窃取用户信息或者劫持用户操作的目的.下图中,欺诈的页面放置在下层,被攻击的银行页面作为透明的层放置在上层,用户看到的是欺诈页面上显示的信息并进行输

HTML5安全风险详析之六:API攻击

HTML5里有许多协议.模式和API,可能成为攻击者的攻击途径 一.registerProtocolHandler:信息泄漏 HTML5允许某些协议和schema注册为新的特性.例如下面的语句可以注册一个email handler. 01.navigator.registerProtocolHandler(“mailto”,“http://www.f.com/?uri=%s", “Evil Mail"); 它会将一个恶意网站处理器关联到mailto这个协议上,所以它在某些情况下的滥用会

HTML5权威指南--Web Storage,本地数据库,本地缓存API,Web Sockets API,Geolocation API(简要学习笔记二)

1.Web Storage HTML5除了Canvas元素之外,还有一个非常重要的功能那就是客户端本地保存数据的Web Storage功能. 以前都是用cookies保存用户名等简单信息. 但是cookie有下面几个问题: a:大小:cookies的大小被限制在4KB b:带宽:cookies随HTTP事务一起被发送,因此会浪费一部分发送的cookies时使用的带宽. c:复杂性:要正确的操纵cookies是很困难的. Web Storage分为两种: <1>sessionStorage 将数

HTML5笔记3——Web Storage和本地数据库

上一篇:HTML5笔记2——HTML5音/视频标签详解 Web Storage概述 在HTML5中,除了Canvas元素之外,另一个新增的非常重要的功能是可以再客户端本地保存数据的Web Storage功能,之前可以使用Cookies在客户端 保存诸如用户名等简单用户信息,但通过长期使用,人们发现使用Cookies存储永久数据存在几个问题. 大小:Cookies的大小被限制在4KB 带宽:Cookies是随HTTP失误一起被发送的,因此会浪费一部分发送Cookies时使用的带宽 复杂性:要正确的

html5本地存储(一)------ web Storage

在html5中与本地存储相关的两个相关内容:Web Storage  与本地数据库 web Storage存储机制是对html4中的cookie存储机制的一个改善.web Storage就是在web上存储数据的功能(针对客户端本地),使用它可以再客户端本地建立一个数据库,这样可以存储页面内容在本地,还加快了访问数据的速度. web Storage分两种:sessionStorage   与  localStorage 一.sessionStorage sessionStorage为临时保存,将数

cocoahttpserver使用详解(二)

接下来,我们接着去学习如何去接收处理web上传的数据 1 首先我们创建一个 @interface WTZHTTPConnection : HTTPConnection 在这个类中我们用于处理接受文件并存储到app文档 同时不要忘记了设置httpserver的Connectio类 [httpServer setConnectionClass:[WTZHTTPConnectionclass]]; 全部的代码如下 .h文件 #define UPLOAD_FILE_PROGRESS @"uploadfi

Tomcat--各个目录详解(二)

Tomcat整体目录: 一.bin文件(存放启动和关闭tomcat脚本) 其中.bat和.sh文件很多都是成对出现的,作用是一样的,一个是Windows的,一个是Linux. ① startup文件:主要是检查catalina.bat/sh 执行所需环境,并调用catalina.bat 批处理文件.启动tomcat. 异常:打开可能有闪退的问题.原因可能有以下两点: 1)缺少环境变量配置,startup会检查你的电脑环境变量是否有JAVA_HOME. 2)已经开启了Tomcat容器,再次开启端口

WebView使用详解(二)——WebViewClient与常用事件监听

登录|注册     关闭 启舰 当乌龟有了梦想-- 目录视图 摘要视图 订阅 异步赠书:Kotlin领衔10本好书      免费直播:AI时代,机器学习如何入门?      程序员8月书讯      每周荐书:Java Web.Python极客编程(评论送书) WebView使用详解(二)--WebViewClient与常用事件监听 2016-05-28 11:24 20083人阅读 评论(13) 收藏 举报  分类: 5.andriod开发(148)  版权声明:本文为博主原创文章,未经博主

Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(二)

在上一篇文章中我详细的介绍了如何搭建maven环境以及生成一个maven骨架的web项目,那么这章中我将讲述Spring MVC的流程结构,Spring MVC与Struts2的区别,以及例子中的一些配置文件的分析. 一.Spring MVC 3.0介绍 Spring MVC是一个典型的MVC框架,是Spring内置的Web框架,可以作为应用项目的展示层,继Spring 2.0对Spring MVC进行重大升级后,Spring 2.5又为Spring MVC引入了注解驱动功能,再到3.0时代,全