盡快刪除!流行前端庫遭受攻擊,影響 10w+ 網(wǎng)站
近日,安全機構(gòu) Sansec 發(fā)文稱流行前端庫 polyfill.js 受到了供應(yīng)鏈攻擊,受影響的網(wǎng)站超過 10 萬個。通過 CDN 使用該庫的網(wǎng)站,在特定情況下會跳轉(zhuǎn)到賭 * 和色 * 網(wǎng)站,下面就來看看這是怎么個事!
polyfill.js 是什么?
Polyfill.js 提供的代碼用于模擬瀏覽器中缺失的原生功能。Polyfill.js 會檢測瀏覽器是否原生支持某個特性或 API。如果瀏覽器不支持該特性,Polyfill.js 會提供一個替代實現(xiàn),模擬該特性的行為。如果瀏覽器已經(jīng)支持該特性,Polyfill.js 不會執(zhí)行任何操作,而是讓瀏覽器使用其原生實現(xiàn)。
發(fā)生了什么?
今年早些時候,一家名為 Funnull 的公司(疑似一家中國公司)收購了 polyfill.io 域名和 Github 賬號。而 Polyfill.js 的 CDN 使用的就是這個域名(cdn.polyfill.io)。之后,該公司向 Polyfill.js 中注入了惡意腳本代碼,導(dǎo)致在移動端使用時(惡意代碼會根據(jù) HTTP 標頭動態(tài)生成)會跳轉(zhuǎn)到惡意網(wǎng)站。
其實早在今年 2 月,Polyfill.js 的作者就表示,如果網(wǎng)站使用 polyfill.io,請盡快刪除,現(xiàn)代瀏覽器已經(jīng)不再需要它。并且作者已經(jīng)不再擁有它,無法保證后續(xù)的正常使用。
根據(jù) Cloudflare CEO 的說法,此次受影響的網(wǎng)站超千萬個,占所有網(wǎng)站的 4%(不知真假,無從考證)。
目前:
- polyfill.io 的域名注冊商已經(jīng)暫停了該域名的使用,服務(wù)已經(jīng)無法正常訪問;
- Google 已經(jīng)屏蔽了使用 polyfill.io 的網(wǎng)站的廣告。
需要做什么?
如果你的項目使用了 polyfill.js,可以這樣做:
(1) 所有使用 cdn.polyfill.io 的應(yīng)用都應(yīng)立即將其刪除。
(2) 如果仍然需要 polyfill,F(xiàn)astly 和 Cloudflare 都提供了值得信賴的替代方案。
- Fastly:https://polyfill-fastly.io/
- Cloudflare:https://cdnjs.cloudflare.com/polyfill
(3) 還可以自托管 polyfill.js:https://github.com/jakeChampion/polyfill-service-self-hosted/