到这里,眼尖的人可能已经发现:没有提示用户是否打开访问相机的权限,网页就直接调用了相机。
那这样操作,有没有安全风险啊?
对此,小哥给出答案:无额外风险。
因为浏览器其实并不能真正控制用户相机(虽然看起来好像可以直接访问),而不过是能轻松上传相机生成的新文件罢了。
说人话——对用户而言,浏览器通过HTML只能打开摄像头;如果需要把照片或者视屏展示到网站,或者保存下来,仍然需要用到JavaScript的MediaDevices API。
有网友补充道,这种操作方式比纯用JavaScript更安全。
因为运用JS的话,在用户允许访问相机后,浏览器就能直接控制摄像头。
而在Web 3.0标准之后(现在主要用的是Web 5标准),规定网页不能直接访问用户的镜头。

不过,小哥也指出:这种直接通过HTML指令打开用户用户摄像头的方式还存在目前不足,比如兼容性不太好。

△图源caniuse.com:红色框表示不支持;绿色框表示支持;棕色框表示部分支持;灰色框表示未知
量子位亲测了一下小哥的这段代码,结果显示:
点击environment和user按钮,在MacBook上分别可以打开视频格式和图片格式的文件;
而在iPhone上,使用百度等浏览器,真的可以直接打开前置和后置摄像头。

感兴趣的伙伴们可以用下面链接中的代码试试~
传送门:
https://austingil.com/html-capture-attribute/
参考链接
[1]https://www.youtube.com/watch?v=DSTXUEHZRiU&t=1s
[2]https://news.ycombinator.com/item?id=32738501
— 完 —
量子位 QbitAI · 头条号签约
关注我们,第一时间获知前沿科技动态
,