前端技术周刊 2018-02-23
新闻
上新
- 2018 年,W3 组织将继续扩展多媒体支持。此前我们有
audio
和video
标签、DASH 和 HLS 流媒体协议,而今年则有如下相关事项:媒体能力规范扩展;网页颜色小组探讨 HDR 与广域颜色范围;第二屏小组则讨论开放屏幕协议、演讲 API、远程录放 API 等。? - Facebook 下的一盘大棋 ReasonML 于近日开放了论坛。ReasonML 这个源自函数式语言 OCaml 的后辈,可以经由 BuckleScript 快速编译为可读且高效的 JavaScript,也有对 JavaScript 程序员相对友好一些的语法,并拥有强类型、编译时检查,它的未来是值得期待的。?
- Mozilla 启动“物品计划”,使得诸如 Raspberry Pi 3、ZigBee、Z-Wave USB dongles 的设备,可以经由 Mozilla 提供的框架接入网络被控制。?
- 在最新的 Fitbit Ionic 之上已经跑着 JavaScript 代码了。Fitbit 出品了 JerryScript 引擎,可以在少于 64k 内存的智能设备上运行 JS 代码。?
- 微信小程序提供的开发工具新增了真机远程调试功能。开发者只需扫描二维码,即可在手机上的微信客户端中调试运行小程序。?
- perspective 是一个经由 WebAssembly 来完成流式的、实时的数据可视化的库。?
- LCUI 是一个将 CSS 用于基于 C 语言开发的用户界面的尝试。?
调研
针对 Node.js 为何如此受开发欢迎,Risingstack 做了一个调查?:
- 快速开发能力、富 I/O 场景下的高性能、易学易用导致 Node.js 受欢迎;
- Node.js 主要用于开发 API、后端服务与网页服务;
- Node.js 在生产环境中主要有性能和安全问题;
- MongoDB 成为主流 Node.js 开发的数据库选择;
- ES Next 是最受欢迎的开发模式。
Quip 为我们带来了一个有意思的性能 Tips?:
使用script[type='application/json']
声明 JSON 字符串并调用JSON.parse
,比在 JS 中直接声明字面量更快。
且 JSON 越大,快得越明显。
专题
前端指纹与用户嗅探
网络标准制定了相对周详的方案来保护用户隐私,比如我们无法通过 JavaScript 拿到:visited
的元素、没有获取用户访问过的页面的接口、有严格的跨域与沙盒限制来防止用户信息泄漏……这些都确保了:如果一位用户打定主意不登录我们的站点,他没有办法被唯一标识。
而前端的指纹技术则通过用户留下的蛛丝马迹,尝试定位与追踪用户行为。前阵子爆发出来的熔断 Meltdown 与幽灵 Spectre,也打开了阅读其它内存的魔盒,攻击者可以利用相关漏洞来读取其它站点的敏感用户信息。这是一个契机,让我们借以了解前端领域的相关技术。
谷歌提供给网页开发者的应对方案,包括利用 Cookie 中的SameSite
和HTTPOnly
来防止 cookie 进入渲染进程的内存,确保 MIME 设置正确,并增添X-Content-Type-Options: nosniff
返回头标识用户敏感的内容等措施。(墙外)
相对系统的列举了 http 协议过程中能够带来的指纹信息。
使用text-shadow
/svg
等方式嗅探用户访问信息。
本文介绍了几年前名噪一时的 Canvas 指纹技术,论述了如何利用 WebGL 与文字渲染的输出差异,来获取高信息熵、持久、用户透明且与其它指纹技术正交的特征值。
fingerprintjs2 封装了指纹技术,并在其说明处列举了共 27 项可以标识用户的数据来源。
介绍了一些仅用 CSS 实现网页追踪的方式,利用 CSS 中特定位置埋下的url()
,能实现点击检测、浏览器特性检测、字体支持性检测、悬停监测和输入监测。
本期编辑:humphry & 审阅:bosn
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。