仿真来电:HTML5振动API的恶意使用
2014/01/16 · HTML5 · 3
评论 ·
HTML5
本文由 伯乐在线 –
梧桐
翻译。未经许可,禁止转载!
英文出处:Terence
Eden。欢迎出席翻译组。
一个新的API出来了。HTML5
(很快)将协助用户设备振动。那分明是很风趣的事体,比如它可以用户触发提示,进步游戏体验,以及任何各样好玩的工作,例如透过振动发送摩斯代码。
到近来甘休,Chrome(以及其余Android浏览器)要动用地方新闻、视频头、地址簿等资源必须申请权限。这是一种安全措施幸免你的个人新闻在未授权的情事下走漏。
而现在使用HTML5振动API并不会在显示屏上触发警告。因为相似认为用那么些功效大概向来不损害,毕竟在现实中它能干的坏事无非是绵绵消耗电量。事实就是这么概括吗?我不敢肯定。
本文由 伯乐在线 –
梧桐【亚洲必赢官网】浏览器类型及版本音讯检测,关闭浏览器时提示onbeforeunload事件。
翻译。未经许可,禁止转发!
英文出处:Terence
Eden。欢迎加入翻译组。
onbeforeunload事件 它是如此用的:
鉴于各浏览器对css以及js协理的差别性,大家在做前端开发时,经常须求先检测浏览器的种类及版本,然后会对个其余差别性来写代码!
上边的checkBrowser()函数紧要检测了三种浏览器(IE, firefox,
chrome),其余的浏览器的检测有趣味的恋人可以自行添加检测代码!
HTML部分代码: (页面加载时举行检测函数)
view sourceprint?1 <body onload=”checkBrowser()”>
邪念
咱俩都看过那种无耻的广告做得跟Windows弹出窗一模一样,它们日常暴发一个正值的连串请求:更新Java或看似的。
只要一个黑心网页弹出一个仿真的系统提示并还要振动,你有多大的自信心能分别一个合法的弹出框和一个png图片?毕竟手机振动了,你就会以为它是开诚布公的系统提示。
(图1)
那会儿你是收取了一个“空投”炸弹,照旧说网页在跟你开个小玩笑?
页面广告自动播放声音自然就很烦人了。自动振动跟它比起来毫不逊色。回顾一下你在满显示器搜索那一个推销保证的广告。
时下震荡的强度还不可能说了算,只可以控制持续时间。当然通过社团恶意代码去突破没打补丁的浏览器也不是不容许的,甚至足以让电机持续高负荷运转直到损坏。
一个新的API出来了。HTML5
(很快)将支撑用户设备振动。那显明是很风趣的作业,比如它可以用户触发提醒,提高游戏体验,以及其余种种幽默的事情,例如经过振动发送摩斯代码。
复制代码 代码如下:
2 <p id=”userAgent”></p>
仿真来电
借使与HTML5
奥迪(Audi)o一起使用,完全可以创立一个很实际的假冒伪劣”来电“,既有震动也有铃声。一旦”接听“,页面就足以播放一段音频:”喂,尽快回打给自己,我的数码是“一个吸费号码”。接下来还足以接纳URI自动打开拨号界面。
(图2)
您能告诉我上边说的是实事求是的来电吗?倘使您够细致或许会发现。但只要页面正在播放你的默许铃声,然后设备还在震荡,这时你就很可能迷糊。假使和WebRTC呼叫绑定,那其实你看到的就是一个细致布局的陷阱。
到近日为止,Chrome(以及别的Android浏览器)要使用地点新闻、视频头、地址簿等资源必须申请权限。那是一种安全措施预防你的个人消息在未授权的处境下败露。
<script language=”javascript”>
g_blnCheckUnload = true;
function RunOnBeforeUnload() {
if (g_blnCheckUnload) {
window.event.returnValue = ‘You will lose any unsaved
content’;
}
}
</script>
<body onbeforeunload=”RunOnBeforeUnload()”>
</body>
3 <p id=”browser”></p>
视频演示
正文作者还录了一段录像,放在Youtube上了。
而现在使用HTML5振动API并不会在屏幕上触发警告。因为相似认为用这几个职能大致从未损害,毕竟在现实中它能干的坏事无非是绵绵消耗电量。事实就是这么概括吗?我不敢肯定。
那样每一回关闭浏览器窗口或涮新页面时,都要触发onbeforeunload那几个事件。
4 </body>
源代码
上边是一个很基本的例子,你可以在手机上试验眨眼之间间。(或点击此处看示例)
JavaScript
<body> <script type="text/javascript">
navigator.vibrate = navigator.vibrate || navigator.webkitVibrate ||
navigator.mozVibrate || navigator.msVibrate; navigator.vibrate([1000,
500, 1000, 500, 1000, 500, 1000, 500, 1000, 500, 1000, 500, 1000,
500]); </script> <img width="100%"
src="phone.png"
onclick="window.location.href='tel:09098790815';"
/> <audio autoplay="autoplay"> <source
src="ring.mp3" /> </audio> </body>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<body>
<script type="text/javascript">
navigator.vibrate = navigator.vibrate ||
navigator.webkitVibrate ||
navigator.mozVibrate ||
navigator.msVibrate;
navigator.vibrate([1000, 500, 1000, 500, 1000, 500, 1000, 500, 1000, 500, 1000, 500, 1000, 500]);
</script>
<img width="100%" src="phone.png" onclick="window.location.href='tel:09098790815';" />
<audio autoplay="autoplay">
<source src="ring.mp3" />
</audio>
</body>
|
现阶段唯有Android平台的Firefox支持,但肯定其余浏览器将会跟进。
邪念
大家都看过那种无耻的广告做得跟Windows弹出窗一模一样,它们平时暴发一个正值的系统请求:更新Java或近乎的。
要是一个黑心网页弹出一个仿真的种类提醒并还要振动,你有多大的自信心能分别一个官方的弹出框和一个png图片?毕竟手机振动了,你就会认为它是真实的系统提醒。
(图1)
那时候你是收到了一个“空投”炸弹,照旧说网页在跟你开个小玩笑?
页面广告自动播放声音自然就很烦人了。自动振动跟它比起来毫不逊色。回顾一下您在满荧屏搜索这一个推销保证的广告。
现阶段震荡的强度还无法决定,只好控制持续时间。当然通过社团恶意代码去突破没打补丁的浏览器也不是不容许的,甚至可以让电机持续高负荷运转直到损坏。
摘要如下:onbeforeunload事件:
javascript部分代码:
检测的规律主要根据浏览器的用户代理报头nanigator.userAgent中提取到浏览器和档次及版本音信,利用正则表明式可以很不难的满意大家的需求,如对正则表明式不了然,可参照此文(正则表明式)
view sourceprint?01 function check(reg) {
提示:
Firefox是Andriod平台上绝无仅有协理振动的。其他的比如三星(Samsung)浏览器,Chrome或者Opera都不支持。Iphone也不援助。Windows
Phone或HTC根本没人在乎的,所以我就不测试了。
当页面使用振动API的时候,Firefox方今并不会申请权限。
您认为浏览器在抖动前是还是不是应该有警告?仍然说那种风险太低?我想那要看那么些骗子公司是还是不是会动用那一点了,或者要看用户是还是不是反对了。
更新:
感谢Reddit和HackerNews地点的褒贬,BB10就像也支撑振动API,Windows
Phone不辅助。
赞 收藏 3
评论
假冒伪劣来电
假若与HTML5
奥迪(Audi)o一起使用,完全能够创造一个很实际的虚假”来电“,既有震动也有铃声。一旦”接听“,页面就可以播放一段音频:”喂,尽快回打给自身,我的编号是“一个吸费号码”。接下来仍可以使用URI自动打开拨号界面。
(图2)
您能告诉自己下边说的是真正的来电吗?如果您够细致或许会发觉。但万一页面正在播放你的默许铃声,然后设备还在震动,那时你就很可能迷糊。即使和WebRTC呼叫绑定,这其实你看来的就是一个缜密布局的骗局。
注:三大主流浏览器中firefox和IE都协理onbeforeunload事件,opera没有协理。
02 var ug = navigator.userAgent.toLowerCase();
至于作者:梧桐
(新浪腾讯网:@jakiewoo_vp9)
个人主页 ·
我的篇章 ·
13
录像演示
正文小编还录了一段视频,放在Youtube上了。
用法:
03 return reg.test(ug);
源代码
下边是一个很基本的事例,你可以在二弟大上考试刹那间。(或点击那边看示例)
<body> <script type="text/javascript">
navigator.vibrate = navigator.vibrate || navigator.webkitVibrate ||
navigator.mozVibrate || navigator.msVibrate; navigator.vibrate([1000,
500, 1000, 500, 1000, 500, 1000, 500, 1000, 500, 1000, 500, 1000,
500]); </script> <img width="100%"
src="phone.png"
onclick="window.location.href='tel:09098790815';"
/> <audio autoplay="autoplay"> <source
src="ring.mp3" /> </audio> </body>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<body>
<script type="text/javascript">
navigator.vibrate = navigator.vibrate ||
navigator.webkitVibrate ||
navigator.mozVibrate ||
navigator.msVibrate;
navigator.vibrate([1000, 500, 1000, 500, 1000, 500, 1000, 500, 1000, 500, 1000, 500, 1000, 500]);
</script>
<img width="100%" src="phone.png" onclick="window.location.href='tel:09098790815';" />
<audio autoplay="autoplay">
<source src="ring.mp3" />
</audio>
</body>
|
此时此刻只有Android平台的Firefox援救,但必然其余浏览器将会跟进。
object.onbeforeunload = handler
<element onbeforeunload = “handler” … ></element>
讲述:
事件触发的时候弹出一个有规定和撤回的对话框,确定则离开页面,裁撤则持续待在本页。
handler可以设一个重回值作为该对话框的显示文本。
04 }
提示:
Firefox是Andriod平台上唯一扶助振动的。其余的比如说三星(三星)浏览器,Chrome或者Opera都不帮衬。Iphone也不支持。Windows
Phone或One plus根本没人在乎的,所以我就不测试了。
当页面使用振动API的时候,Firefox如今并不会申请权限。
你觉得浏览器在震动前是不是应当有警示?依然说这种风险太低?我想那要看那多少个骗子集团是不是会采纳那一点了,或者要看用户是不是反对了。
更新:
感谢Reddit和HackerNews上面的评头品足,BB10犹如也支撑振动API,Windows
Phone不扶助。
赞 收藏 3
评论
触发于:
05
有关小编:梧桐
(博客园博客园:@jakiewoo_vp9)
个人主页 ·
我的稿子 ·
13
关闭浏览器窗口
通过地方栏或储藏夹前往其余页面的时候
点击重回,前进,刷新,主页其中一个的时候
点击 一个前去其余页面的url连接的时候
调用以下任意一个事件的时候:click,document write,document
open,document close,window close ,window navigate ,window
NavigateAndFind,location replace,location reload,form submit.
当用window
open打开一个页面,并把本页的window的名字传给要开辟的页面的时候。
双重赋予location.href的值的时候。
经过input type=”submit”按钮提交一个所有指定action的表单的时候。
可以用在偏下因素: BODY, FRAMESET, window
06 function checkBrowser() {
阳台支持: IE4+/Win, Mozilla 1.7a+, Netscape 7.2+, Firefox0.9+
07 var ug = navigator.userAgent.toLowerCase();
你或许感兴趣的文章:
- JavaScript无提醒关闭窗口(包容IE/Firefox/Chrome)
- js关闭浏览器窗口及检查浏览器关闭事件
- 在firefox和Chrome下关闭浏览器窗口无效的解决方式
- 闭馆浏览器输入框自动补齐
包容IE,FF,Chrome等主流浏览器 - 关门浏览器窗口弹出提醒框并且可以操纵其失效
- 哪些落实chrome浏览器关闭页面时弹出“确定要相差此面吗?”
08 var userAgent = document.getElementById(“userAgent”);
09 userAgent.innerHTML = “浏览器的用户代理报头:” + ug;
10
11 var browserType = “”;
12 var ver = “”;
13
14 //检测IE及版本
15 var IE = ug.match(/msies*d.d/);
//提取浏览器类型及版本消息,注match()方法重回的是数组而不是字符串
亚洲必赢官网,16 var isIE = check(/msie/);
17 if(isIE) {
18 browserType = “Internet Explorer”;
19 ver = IE.join(” “).match(/[0-9]/g).join(“.”);
//先用join()方法转化为字符串,然后用match()方法匹配到版本音信,再用join()方法转化为字符串
20 }
21
22 //检测chrome及版本
23 var chrome = ug.match(/chrome/d.d/gi);
24 var isChrome = check(/chrome/);
25 if(isChrome) {
26 browserType = “Chrome”;
27 ver = chrome.join(” “).match(/[0-9]/g).join(“.”);
28 }
29
30 //检测firefox及版本
31 var firefox = ug.match(/firefox/d.d/gi);
32 var isFirefox = check(/firefox/);
33 if(isFirefox) {
34 browserType = “Firefox”;
35 ver = firefox.join(” “).match(/[0-9]/g).join(“.”);
36 }
37
38 var browser = document.getElementById(“browser”);
39 browser.innerHTML = “您正在采纳的浏览器为:” + browserType +
“<span style=padding-left:15px;>版本为:</span>” + ver;
40 }
PS:各浏览器的用户代理音信如下:
view sourceprint?IE:Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1;
Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR
3.0.30729; Media Center PC 6.0; InfoPath.3; BOIE9;ZHCN);
firefox:Mozilla/5.0 (Windows NT 6.1; rv:2.0) Gecko/20100101
Firefox/4.0;
chrome:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US)
AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.98 Safari/534.13
下…