专栏首页Java技术栈厉害了,15 行代码让 iPhone 崩溃。。

厉害了,15 行代码让 iPhone 崩溃。。

一个名叫Sabri Haddouche的网络安全研究人员发推特说发现了苹果系统一个新的漏洞,可以使iPhone或Mac崩溃并重启。他们公布了一个只有15行代码的网页,访问这个页面就会让iPhone或iPad崩溃。

有人在开原网站github上发布了相关信息,包括bug的源代码,代码只有几行CSS和HTML代码。采用macOS和Windows 7测试了这个网页,苹果的浏览器Safari会死机崩溃,通过Firefox浏览器就不会有问题。

Haddouche介绍,iOS用的网页排版引擎WebKit有个弱点,而这个引擎是苹果要求,所有app所有浏览器必须用的。

只要在CSS的Backdrop-filter里嵌入大量元素,比如<div>标签,就可以耗尽设备的所有资源,造成内核错误(Kernel Panic) 。

“任何在iOS上呈现HTML的页面都会受到影响。”——这意味着如果有人通过社交媒体或电子邮件向你发送这个链接,或者你访问了包含代码的网页,你的设备就有可能崩溃。

根据外媒9to5Mac的说法,“大量计算导致WebKit渲染器过载,系统只能重启内核,也就出现了‘白苹果’,然后导致重启。” 而WebKit正是Safari浏览器使用的HTML渲染引擎。

恶意软件侦测产品提供商Malwarebytes的Mac和移动端负责人Thomas Reed也证实,iOS 12测试版,点开链接之后,就会被冻住 (Frozen) 。不过,也有些设备比较走运,不会崩溃只会重启,注销 (Respring) 回用户界面。

但好在这只是软件问题,不会导致硬件损坏,所以除了重启一下,倒没有其他大问题。

此前,iOS设备也遇到过类似问题,若干代码或几个特殊字符可能导致设备崩溃,但通常苹果会在下一个系统更新中修复。

话说各位好奇的也可以自己尝试一下下面的地址,用 safari 浏览器打开。反正,只是重启一次,并无大碍。

https://hilongjw.github.io/safari-reaper-demo/index.html

老哥已经测试,只是重启了。。请谨慎操作,万一出现其他问题不要骂我。。

(完)

本文分享自微信公众号 - Java技术栈(javastack)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-09-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Spring Boot 发布 jar 包转为 war 包秘籍。

    Java技术栈
  • 这个函数,1987年在这了,别动它!

    http://www.apkbus.com/blog-873057-82068.html

    Java技术栈
  • 3种常见的Class级别的错误

    ClassNotFoundException 很明显,这个错误是 找不到类异常,即在当前classpath路径下找不到这个类。 ClassNotFoundExc...

    Java技术栈
  • 每天一道剑指offer-不用加减乘除做加法

    首先看十进制是如何做的: 5+7=12,三步走 第一步:相加各位的值,不算进位,得到2。 第二步:计算进位值,得到10. 如果这一步的进位值为0,那么第一步得到...

    乔戈里
  • 谍中谍 | 荷兰情报机构掌握了俄对美大选网络攻击的关键证据!?

    近期,荷兰媒体报料称,荷兰国家情报局(AIVD)曾向美国联邦调查局(FBI)提供了关于俄罗斯政府黑客网络攻击美国大选的“可靠性”关键证据,这些证据来源基于荷兰国...

    FB客服
  • 网络黑客有哪些种类他们都有哪些行为

    网络黑客随着互联网技术的普及,让他们越来越能受到关注;那么当前网络黑客有哪些种类他们都有哪些行为呢?针对这些以下业内相关专家就来进行介绍。 ? 网络黑客的种类 ...

    企鹅号小编
  • App内购(IAP)的价格优(qi)化(pian)策略

      App的内购的优化很重要。或者说,凡是移动端的购买转化优化都很重要。  这么说有一点同意反复的啰嗦,但app与web不同,app用于说服(或者影响)消费者...

    iCDO互联网数据官
  • 斯坦福机器学习课程上新!一课打尽基础机器学习模型+NLP+社交网络

    ——小编已经为你物色好了一门斯坦福机器学习课程!糅合基础机器学习模型、自然语言处理(NLP)和社交网络为一体,《CS 124: From Languages t...

    大数据文摘
  • typedef用法

    定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如: char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指...

    于小勇
  • 开源 | 基于Metal的机器学习框架Bender:可在iOS上运行TensorFlow模型

    选自GitHub 机器之心编译 参与:吴攀 在正在举行的 WWDC 2017 上,苹果宣布发布了 Metal 2,详情可参阅机器之心的报道《苹果开发者大会 W...

    机器之心

扫码关注云+社区

领取腾讯云代金券