npmmirror 镜像站(原CNPM)核心开发者在社交平台表示,有人利用 npm 包的机制,将刚开播的《庆余年2》整套高清盗版资源搬运到了 npmmirror。
好家伙,这是把托管开源软件包的镜像站当成了分发视频的 CDN。
因此开发者无奈地表示,npmmirror 目前已暂停 unpkg 的【新增文件】服务,不再解析新的包版本,但存量的仍会保留,所以不会影响使用者的当前业务。
unpkg 介绍
unpkg 是一个快速的、全球性的、免费的公共 npm 包 CDN,它允许你通过 URL 来访问 npm 上的包。它由 Cloudflare 提供支持,可以提供快速的下载速度和缓存服务。
使用 unpkg,你可以很容易地在网页中包含 JavaScript 库、CSS 框架等,而不需要下载它们到你的服务器。
例如,如果你想在你的网页中使用 jQuery,你可以通过 unpkg 提供的链接来引用它:
<script src="https://unpkg.com/jquery@3.5.1/dist/jquery.min.js"></script>这个链接会指向 jQuery 3.5.1 版本的 CDN 地址,你可以根据需要替换版本号。
unpkg 还支持通过路径来访问包的内容,例如:
<link href="https://unpkg.com/bootstrap@4.5.0/dist/css/bootstrap.min.css" rel="stylesheet">这个链接会指向 Bootstrap 4.5.0 版本的 CSS 文件。
使用 unpkg 可以极大地简化前端开发中的资源管理,因为它提供了一个简单、快速的方式来引入第三方库。
以上面《庆余年 2》为例,这群薅羊毛的灰产团伙惯用手法就是将盗版视频切成若干个体积较小的视频文件(当然他们会用骚操作“掩饰”视频文件,这里不展开),并将其上传到 npm
(https://www.npmjs.com/package/lyq2/v/1.1.7-1),然后以 “软件包” 的方式引用它们。

除了视频文件,这群团伙将 m3u8 文件上传到了 unpkg (https://unpkg.com/lyq2@1.1.7-1/playlist.m3u8) 作为索引。
有了 “视频源文件” 和 “索引” 即可实现在视频网站进行在线播放。
M3U8 是近年来逐渐被广泛使用的一种流媒体格式,它的全称是 UTF-8 编码的 M3U 文件。M3U,即 Media Playlist,是一种索引纯文本文件,主要用来记录音频、视频分块的列表。
当我们打开一个 M3U 文件时,播放软件并不是直接播放这个文件,而是根据文件中的索引找到对应的音视频文件的网络地址进行在线播放。
而 npmmirror 作为 npmjs.com 镜像站,会同步 npm 完整镜像至中国服务器(用的是阿里云),这里面就包括上述的盗版资源。用了国内的服务器,速度自然更快……

当然这也不是盗版团伙第一回干这种事了,去年国外的安全研究团队就介绍了 npm 被滥用的案例——他们发现托管在 npm 的 748 个软件包实际上是视频文件(武林外传)。
延伸阅读




Thanks for taking the time to let us know.
Our review of the account and package named in your report has concluded. We have determined that one or more violations of npm's Open-source Terms have occurred and have taken appropriate action in response.
Please let us know if we can help in any other way!
Regards,
GitHub Trust & Safety