如何机智的弄坏一台电脑?

全世界只有3.14 % 的人关注了

爆炸吧知识


原文:http://litten.me/2015/07/06/hack-in-localstorage/

作者:Litten

很多人都在说:“技术领域当中,前端最没有技术含量,且容易被替代。”有人说,前端的能力界限顶多就在浏览器那儿,无论你触发了多少bug,最多导致浏览器崩溃,连电脑系统都影响不了。

就像二次元各种炫酷的毁灭世界,都不会导致三次元的世界末日。

这我就不能忍了。作为一个前端,我发现还是有方式突破次元壁、打开次元大门的…

这个实验脑洞较大,动机无聊,但某种意义上反映了一些安全问题。

想象一下,有天你在家里上网,吃着火锅还唱着歌,点开一个链接,电脑突然就蓝屏了!想想还真有点小激动。

起因

故事得从localStorage(本地存储)说起。

html5的本地存储,相信大家都不陌生。将数据以二进制文件形式存储到本地,在当前应用得非常广泛。

windows下的chrome,localStorage存储于C:\Users\xxx\AppData\Local\Google\Chrome\User Data\Default\Local Storage文件夹中。但如果任由网页无限写文件,对用户硬盘的伤害可想而知,因而浏览器对其做了大小限制。

对于一个域名+端口,PC端的上限是5M-10M之间,移动端的则是不大于2.5M。

那么问题就变成:这样的限制足够保护用户硬盘了吗?

关键

关键的问题在于,这一限制,针对的是一个域名+端口。

也就是说,你访问同一个域名的不同端口,它们的localStorage并无关联,是分开存储的。

我用node简单地开启了服务器,这时,用户访问http://127.0.0.1:1000到http://127.0.0.1:1099这100个端口,会请求到同一个页面index.html。


当然,这个index.html里涉及了localStorage写操作。


我试着用浏览器分别访问了几个端口,结果是分开存储。一切跟剧本一样。

自动遍历

但这种程度还不够。

如果要让实验变得更好(xie)玩(e)一些,问题就变成如何让用户自动遍历这些端口?

iframe是个好的尝试。

只要一打开http://127.0.0.1: 1000,页面的脚本就会创建一个iframe,去请求http://127.0.0.1: 1001,一直循环下去。

当然iframe我们还可以设置为不可见,以掩盖这种不厚道的行为…

比方说,有人发给你一个链接,你打开后发现是个视频,而你根本注意不到背后的脚本,在视频播放的几分钟里,快要把你的C盘写满。

然后我就看到请求如潮水渐涨:

但是,请求到1081端口,最新的chrome就崩溃掉了…原来iframe嵌套太多,已经到达了浏览器的极限。

防止浏览器崩溃

C盘还未撑满,同志还需努力。怎么办?

突然想到,到达iframe极限之前,我们可以重定向啊。

每访问50个端口,就使用window.location.href重定向一次,去确保浏览器不崩溃。

事实证明,这种野蛮的方法的确可行。

至此,只要访问http://127.0.0.1: 1000,就会往Local Storage文件夹里写入近500M无用数据:

里面的数据是这样的:


继续实验的黑科技

算了下我的C盘还有空间嘛,那就把端口数量从100增长到200个。结果是这样的,到达了1.17G大小。


在后续的实验中,我就慢慢地把端口数量与存储的数据调大。

电脑也运行得越来越慢。这是为什么呢?

我观察到,有时候执行localStorage.setItem()后,在文件夹里不一定立即能看到数据文件。我怀疑这些数据会被chrome先放到内存里,以避免重复读写带来的消耗,在空闲或关闭的时机,再写进硬盘里。

但此时,浏览器已经影响到系统了。它处于一种“不会崩溃”,但“因为占用了许多内存,已经妨碍用户电脑的正常使用”的状态。

即使用户关闭了浏览器窗口,也不会很快恢复。要知道读写任务并不是随窗口关闭而终止的,否则浏览器会丢失数据。

遭遇黑科技的人们能做的只有:

  • 等待;

  • 用任务管理器关掉chrome进程,再等待;

  • 相信并尝试“重启电脑解决90%电脑问题”的科学论断。

可以说,浏览器的内心几乎是崩溃的。

最后

最后,还是得用严肃脸告诫一下:害人之心不可有。

本实验,从一开始就是怀揣着将安全问题上交给国家的初衷去做的(是的就是这么纯粹)。

后续,看着C盘还有2G空间,我又把端口增长到2000个,试下会发生什么。

由于请求过多,需要一定时间,我就去做别的事情了。

回来后发现房间安静祥和,美轮美奂,一片蓝光,像是加了特技。

那么…

问题来了,计算机修理哪家强?

有点急…

从工作流程来看,前端开发工程师处于UI设计师的下游,要接UI设计稿,转化为网页。同时又是后端工程师的上游,需要把用户产生的数据提交到服务端。横向来看,他又与产品经理有着密切接触,因为他可能随时和产品经理探(si)讨(bi)交互的细节。

对于产品经理天马行空的思想,你要能把握到位,你得理解他比划了半天到底是想要做什么。与后端工程师打交道的时候,你又得马上化身编程达人,跟他们聊数据类型,聊面向对象,聊设计模式。

前端的门槛好像很低,但要成为一名专业的前端工程师,需要掌握的东西太多了。除了前端技术外,还要思维细腻、有品味、有思想、情商高等等。毕竟你要通过代码与用户产生接触,给用户带来愉悦感。

从某种程度上来说,好的前端工程师,一定得先是一个好人。

本文转载自【51CTO官微】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/298140.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

局域网屏幕监控软件

选择一款好的局域网屏幕监控软件要注意哪些问题?相信这是很多企业老板、网管都关心的问题之一。网上各种监控软件那么多,万一下载一个不好用的软件,不仅浪费的是时间,甚至因为软件稳定性不好,影响员工工作效率就不好了…

C#为什么会这么慢之命运之终章-真理篇for firelong

firelong我真得希望你来看一看,可惜上一篇你错过了。c#会这么慢的话题却是始终充满着火药味,也许说真话真的很不动听, 可能上次的帖子firelong没看到,讨论C#哪能错过微软,.NET战略是微软当年的号称终极兵器的究级必杀技…

豆瓣评分9分+,这6部经典趣味数学纪录片堪称神作!

全世界只有3.14 % 的人关注了爆炸吧知识数学是研究数量、结构、变化以及空间模型等概念的一门学科。透过抽象化和逻辑推理的使用,由计数、计算、量度和对物体形状及运动的观察中产生。数学家们拓展这些概念,为了公式化新的猜想以及从合适选定的公理及定义…

找对象不能只看TA的外表

1 别人家的小奶猫简直太萌了!2 你为什么抱它不抱我-我不高兴!3 这设计怎么讲4 垃圾桶是新的穿越道具!5 找对象不能只看TA的外表6 一下都不知道要干嘛了7 在评论区大声告诉我你点的每个赞,我都认真当成了喜欢

HDU_1541 Stars(树状数组)

poj上1A&#xff0c; HDU上6A&#xff0c;我晕啊&#xff01;注意几点&#xff1a; 1、多组数据&#xff1b; 2、memset(c, 0, siezeof(c)); 3、memset(ans, 0, sizeof(ans)); my code: View Code #include <stdio.h>#include <string.h>#define N 32010int c[N],…

点击ride界面edit空白_『技术锦囊』如何在SOLIDWORKS界面调用宏程序?

SOLIDWORKS宏程序为广大设计开发者提供了非常便捷的开发环境&#xff0c;合理的使用宏程序除了可以节约时间还可以减少很多不必要的操作&#xff0c;例如一键替换图纸等。此次便与大家讲讲&#xff0c;如何在SOLIDWORKS界面调用宏程序。操作流程1、任意开启一张工程图图纸&…

女人在想什么

1 行吧&#xff0c;这样至少回家不用给洗jiojio了。2 世纪难题——《女人在想什么》3 方法总比困难多4 跟瓜摊大哥学切西瓜5 你是怎样上去的&#xff1f;6 摄影师&#xff1a;我是因为没有对手才做摄影的&#xff01;7 有了女儿后&#xff0c;儿子的处境好像不太妙8 想知道白色…

zoj2271 Chance to Encounter a Girl(DP)

/* 概率计算&#xff1a;按时间为阶段&#xff0c;每个点由上一阶段周围的四个点来维护。 注意事项&#xff1a;1.时间O&#xff08;N^3*T&#xff09;&#xff0c;在问题的边缘时间&#xff0c;所以打表计算。     2.关于概率的求解&#xff0c;如果遇到就结束了&#…

12 个问题搞懂 Redis

都说学习需要带着问题&#xff0c;带着思考进行学习&#xff0c;下面就以问题的形式来学习下 Redis 。1、什么是 Redis &#xff1f;Redis 是一个高性能的 key-value 数据库&#xff1b;作者来自意大利西西里岛的 Salvatore Sanfilippo &#xff1b;Redis 使用 ANSI C 语言编写…

sql企业管理器_Valentina Studio for mac(开源数据库管理器)

Valentina Studio for mac是您使用MySQL&#xff0c;MariaDB&#xff0c;SQL Server&#xff0c;PostgreSQL&#xff0c;SQLite和Valentina DB数据库的通用数据库管理工具。valentina studio mac下载可让您连接所有主要数据库&#xff0c;运行查询并生成图表&#xff0c;以更好…

java程序编六角星_跨平台移动端解决方案—Weex

跨端方案背景一1起因由于客户端Webview内嵌H5的各种受限&#xff0c;例如性能差、JS执行效率低以及伴随着大量的机型兼容问题&#xff0c;于是有了各种混合跨端开发解决方案&#xff1a;Hybrid、React-Native、Weex、Flutter、小程序、快应用等。2优势我们知道各大应用市场对于…

父类可以调用子类的方法吗_python类的继承、多继承及查找方法顺序

讲解类的继承&#xff0c;先用无__init__()方法的类讲解&#xff0c;会更容易理解分三部分讲解1、单继承(无__init__()方法)继承方式&#xff1a;子类(父类):方法重写&#xff1a;防止执行父类的方法。不想继承父类的某个方法&#xff0c;就自己重写一个一样名称的方法执行父类…

解决ASP.NET Core部署到IIS,更新项目另一个程序正在使用此文件,进程无法访问...

问题部署到IIS上的ASP.NET Core项目&#xff0c;在更新的时候会进程占用的错误解决思路初步解决方案&#xff1a;1&#xff0c;关闭应用程序池2&#xff0c;关闭网站3&#xff0c;更新项目缺点&#xff1a;网站没法访问&#xff0c;部署项目停的时间过长答案查询官方文档后&…

下面选项能正确表示JAVA_模拟试题2

Java语言程序设计模拟试题二一、选择题&#xff1a;共20小题&#xff0c;每小题1分&#xff0c;满分20分&#xff1a;请将答案填入题后括号中。1&#xff0e;以下的选项中能正确表示Java语言中的一个整型常量的是 ( )A) 12. B) -20 C) 1,000 D) 4 5 62。下列的变量定义中&#…

使用Redis Stream来做消息队列和在Asp.Net Core中的实现

Redis - Wikipedia写在前面我一直以来使用redis的时候&#xff0c;很多低烈度需求(并发要求不是很高)需要用到消息队列的时候&#xff0c;在项目本身已经使用了Redis的情况下都想直接用Redis来做消息队列&#xff0c;而不想引入新的服务&#xff0c;kafka和RabbitMQ等&#xff…

windows挂载ext4_使用 UEFI 双启动 Windows 和 Linux | Linux 中国

这是一份在同一台机器上设置 Linux 和 Windows 双重启动的速成解释&#xff0c;使用统一可扩展固件接口&#xff08;UEFI&#xff09;。来源&#xff1a;https://linux.cn/article-12891-1.html作者&#xff1a;Alan Formy-duval译者&#xff1a;郑&#xff08;本文字数&#x…

oh,我的老伙计,你看看这近五十个dapr视频

oh&#xff0c;我的老伙计&#xff0c;你看看这近五十个 dapr 视频。这不就是你想要的视频资料吗&#xff1f;快来捡走吧&#xff01;开始了&#xff0c;但是没完全开始 Dapr 是一个可移植的、事件驱动的运行时&#xff0c;它使任何开发人员能够轻松构建出弹性的、无状态和有状…

极速理解设计模式系列:2.观察者模式(Observer Pattern)

4个角色&#xff1a;被观察者(Subject/目标对象接口)&#xff0c;具体被观察者(ConcreteSubject/具体目标对象)&#xff0c;观察者(Observer)&#xff0c;具体观察者(ConcreteObserver) 被观察者(Subject/目标对象接口&#xff09;&#xff1a;目标对象的抽象接口 …

16年微软/腾讯云/华为云MVP是怎样炼成的

自由、创新、研究、探索&#xff0c;很难想象到一个IT大神的博客&#xff0c;会将“自由”放在第一位&#xff0c;也许这二字代表的&#xff0c;既是精神&#xff0c;又是情怀。搞微软技术的&#xff0c;大家或多或少都有听说过微软的“最有价值专家”&#xff08;MVP&#xff…

.NET中的设计模式---由吃龙虾想到的

作者: 倪大虾 发表于 2010-07-18 18:10 原文链接 阅读: 725 评论: 20今天吃小龙虾的时候忽然想到了以前一个湖北朋友讲的虾的故事.这位朋友是湖北人,据他说在他小时候他们那里很多虾,特别是夏天雨后,满地爬的都是.因为传说那是美国对付中国的秘密武器,居然没有人敢吃.后来偶然有…