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