用 Next.js 寫代碼的兄弟們,這兩天可能要瘋。
就在 12 月 3 日,Next.js 官網丟出了一個「安全公告」,證實了一個<span style="color: red;font-size: 16px;font-weight: bold;">高危安全漏洞</span>。這個漏洞有多嚴重?它直接影響了 Next.js 的核心運行機制。
💣 這鍋得讓 RSC 協議來背
官方宣稱,這個「允許攻擊者注入任意代碼」的漏洞,核心問題出在 RSC 協議上。
RSC(React Server Components)協議,就是那個為了性能優化,讓服務器組件數據在<span style="color: red;font-size: 16px">服務器和客户端之間跳舞</span>的傢伙。
我們來批判一下: RSC 追求的<span style="color: red;font-size: 16px">「全棧體驗」</span>和<span style="color: red;font-size: 16px">「服務器/客户端邊界模糊」</span>,在開發體驗上確實是飛躍,但這種複雜的<span style="color: red;font-size: 16px">狀態和數據同步機制</span>,從來都不是<span style="color: red;font-size: 16px">安全和穩定的好朋友</span>。當你試圖在一個框架內承載太多複雜的傳輸邏輯時,出問題只是時間問題。
🚨 影響範圍:你的項目全軍覆沒了嗎?
看看這個影響版本列表,基本上現在正在跑 Next.js App Router 的項目全軍覆沒,熱門版本無一倖免!
看看安全大佬們的發言,你就知道事情有多緊急:
雖然有社區用户們嘗試「重現」,初期沒有成功,但這只是<span style="color: red;font-size: 16px">時間問題</span>,隨着時間的推進,必然會有更多用户能利用這個漏洞。
🛠️ 要升級嗎?
目前看來是很有必要的,除非你的項目是靜態生成的。
對於這種高危漏洞,沒有什麼優雅的解決方案,只有一個字:<span style="color: red;font-size: 16px;font-weight: bold;">升級!</span>
在享受新技術的便捷面前,也要承擔新技術各方面帶來的不穩定性,這次 RSC 漏洞剛好踩到大雷!
不説了,筆者升級去了!
本文由mdnice多平台發佈