網易首頁 > 網易號 > 正文 申請入駐

TanStack Start 推出導入保護機制,強化服務器與客戶端邊界劃分

0
分享至


作者 | Daniel Curtis

譯者 | 平川

TanStack Start 引入了 導入保護功能,這是一種基于 Vite 的機制,旨在防止僅限服務器的代碼泄露到客戶端包中,以及僅限客戶端的代碼泄露到服務器包中。該功能于 2026 年 2 月在 X 上 發布,目前仍標記為實驗性功能,在所有新的 TanStack Start 項目中會默認啟用。

隨著全棧 React 應用程序的復雜性不斷提升,服務器端與客戶端代碼之間的邊界已經成為導致隱蔽錯誤和安全風險的常見根源。如果不對導入進行嚴格的管理,本應僅在服務器端運行的代碼(如數據庫查詢或訪問環境的密鑰)就可能會意外地進入客戶端打包文件。TanStack Start 的導入保護功能旨在通過工具層面的機制來解決這一問題,而非僅依賴開發者的自律。

該系統以 Vite 插件的形式運行,會在開發和構建過程中檢查源文件中的每個導入語句。導入語句可能因兩種情況被拒絕:基于解析后文件路徑的文件模式匹配,以及基于原始導入字符串的限定符模式匹配。在默認情況下,遵循*.server.*命名規范的文件在客戶端環境中會被拒絕,而*.client.*文件在服務器端會被拒絕。這一功能不需要任何額外的配置。限定符@tanstack/react-start/server在客戶端也會被默認屏蔽。

對于不符合命名規范的文件,開發者可以在文件開頭使用一個有副作用的導入語句,明確地將模塊標記為僅限服務器端或僅限客戶端:

export const API_KEY = process.env.API_KEY

該插件會記錄這個標記,如果后續這個文件從錯誤的環境導入,該限制就會強制執行。它還可以為整個目錄或特定的 npm 包添加自定義拒絕規則,如在vite.config.ts中使用importProtection.client.specifiers選項,阻止@prisma/clientbcrypt進入客戶端打包文件。

它在開發環境和生產環境中的行為有所不同。在開發過程中,違規行為默認會觸發mock模式,將違規導入替換為遞歸 Proxy,并記錄一條告警信息,同時允許當前工作繼續進行。在構建時,默認行為會切換為error模式,此時構建過程會中止,并顯示詳細的診斷信息,包括:完整的導入鏈、包含違規行的代碼片段以及可操作建議(如將邏輯封裝在createServerFn()、createServerOnlyFn()createIsomorphicFn()中)。

Next.js 通過 React 服務器組件(RSC)和社區開發的server-only包來處理類似的問題。在很大程度上,這些方案依賴于 RSC 模型,而 TanStack Start 目前尚未支持該模型。在 Reddit 上有一則討論 TanStack 與 Next.js 安全性的帖子,Tanstack 生態系統的創建者 Tanner Linsley 對此進行了回復,并就安全性問題澄清如下:

盡管 TanStack 的攻擊面比較小,但它與 Next 一樣,內置了相同的預防性安全措施。鑒于近期 CVE 漏洞的數量激增,我們不僅及時跟進了已知的 CVE 漏洞,而且還不斷地對框架進行小心地審計,以防范其他未知或新出現的攻擊途徑。

他接著承認,最終難免會發現一些問題,但他相信,這些問題的嚴重程度不會像 近期的 CVE 那樣:

毫無疑問,隨著 Start 越來越受歡迎,終究會出現一些我們尚未發現的問題,但請放心,它們出現的形式很可能不會像其他框架中現有 / 已知的漏洞。

這條發布在 X 上的 公告帖 獲得了超過 590 個點贊和 21 條評論,用戶的反響可謂積極,其中一位用戶表示終于可以放心了。

GitHub 上的一則問題報告 指出,當服務器端代碼被意外地導入到客戶端時,TanStack Start 的早期版本會生成晦澀難懂且難以調試的錯誤信息,新功能所提供的詳細違規追蹤信息正是針對這一問題而設計的。

想要升級版本的團隊應查閱 導入保護功能的文檔,并在 Vite 配置中檢查插件的加載順序(如果使用了 TypeScript 路徑別名)。該功能在新項目中不需要手動啟用,只有在 TanStack Start Vite 插件的配置中顯式設置importProtection: { enabled: false }時,它才會被禁用。

TanStack Start 是一個基于 TanStack Router 構建并由 Vite 驅動的全棧 React 框架,支持服務器端渲染(SSR)、流式處理、服務器函數、打包,并可在任何托管服務商或運行時環境中部署。目前,該項目處于候選發布(Release Candidate)階段。

https://www.infoq.com/news/2026/03/tanstack-import-protection/

聲明:本文為 InfoQ 翻譯,未經許可禁止轉載。

特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關推薦
熱點推薦
80W全能卷王,輕薄本也能玩3A!惠普星Book Pro 16深度測評

80W全能卷王,輕薄本也能玩3A!惠普星Book Pro 16深度測評

電腦報
2026-04-20 16:51:12
克媒:莫德里奇顴骨骨折賽季報銷,預計將戴面具出戰世界杯

克媒:莫德里奇顴骨骨折賽季報銷,預計將戴面具出戰世界杯

懂球帝
2026-04-27 22:00:51
羅永浩連發6個問句怒懟!俞敏洪反思“東方甄選多位主播離職”,有網友說“任何一個人遭遇羅永浩、董宇輝這種忘恩負義的小人都夠嗆”

羅永浩連發6個問句怒懟!俞敏洪反思“東方甄選多位主播離職”,有網友說“任何一個人遭遇羅永浩、董宇輝這種忘恩負義的小人都夠嗆”

魯中晨報
2026-04-27 17:56:12
大五座SUV市場都在演戲!嵐圖泰山X8,撕碎所有偽大五座

大五座SUV市場都在演戲!嵐圖泰山X8,撕碎所有偽大五座

科技每日推送
2026-04-23 18:25:22
車企為什么開始把新車首發押在京東上?

車企為什么開始把新車首發押在京東上?

豹變
2026-04-25 08:00:03
匈牙利一夜變天:馬扎爾開啟全面清算!歐爾班往哪走?

匈牙利一夜變天:馬扎爾開啟全面清算!歐爾班往哪走?

大江看潮
2026-04-27 09:05:55
江淮汽車:目前尊界S800面向國內銷售

江淮汽車:目前尊界S800面向國內銷售

每日經濟新聞
2026-04-27 16:27:20
演員陸毅嘴唇發紫,被網友提醒去醫院體檢;陸毅聽勸后回應:心臟沒問題,體重卻超標了,身高1米8,體重180斤,“我是方的”

演員陸毅嘴唇發紫,被網友提醒去醫院體檢;陸毅聽勸后回應:心臟沒問題,體重卻超標了,身高1米8,體重180斤,“我是方的”

浙江之聲
2026-04-27 13:09:03
吉林伊通驚現200萬豪華住宅式墓地,獨門獨戶地上地下兩層

吉林伊通驚現200萬豪華住宅式墓地,獨門獨戶地上地下兩層

大象新聞
2026-04-27 13:41:32
克宮發出最后通牒要求烏作出“痛苦決定”,德國炮彈產能超越美國

克宮發出最后通牒要求烏作出“痛苦決定”,德國炮彈產能超越美國

史政先鋒
2026-04-27 18:27:59
拆解健合:一季度數據里的抗周期基因

拆解健合:一季度數據里的抗周期基因

一點財經
2026-04-27 18:31:37
這才是提高數學成績最好的方法?。ńㄗh永久收藏)

這才是提高數學成績最好的方法?。ńㄗh永久收藏)

戶外阿毽
2026-04-27 09:46:34
這位派出所長,你瘋了嗎?

這位派出所長,你瘋了嗎?

新海言
2026-04-27 11:01:05
余承東在華為權力排名

余承東在華為權力排名

生活新鮮市
2026-04-27 18:30:53
32歲男子:一周多達9次,不幸猝死,妻子:多次勸說,他就是不聽

32歲男子:一周多達9次,不幸猝死,妻子:多次勸說,他就是不聽

川渝視覺
2026-04-27 22:04:50
開源模型橫掃21個科學任務!寬德Will聯手斯坦福清北,試錯變武器

開源模型橫掃21個科學任務!寬德Will聯手斯坦福清北,試錯變武器

機器之心Pro
2026-04-26 13:19:19
自導自演白宮記協晚宴槍擊事件?特朗普回應

自導自演白宮記協晚宴槍擊事件?特朗普回應

極目新聞
2026-04-27 19:31:28
我敢打賭99%的男人會選白衣服女孩做老婆,看腿型就知道

我敢打賭99%的男人會選白衣服女孩做老婆,看腿型就知道

朗威談星座
2026-04-26 10:47:21
隨著吳宜澤13-11勝塞爾比,火箭12-13,世錦賽8強對陣出爐附賽程

隨著吳宜澤13-11勝塞爾比,火箭12-13,世錦賽8強對陣出爐附賽程

小火箭愛體育
2026-04-28 00:09:23
上海地鐵32歲女子與66歲老太互毆后續:央媒發聲,拘留只是開始!

上海地鐵32歲女子與66歲老太互毆后續:央媒發聲,拘留只是開始!

青梅侃史啊
2026-04-27 11:38:30
2026-04-28 02:47:00
InfoQ incentive-icons
InfoQ
有內容的技術社區媒體
12309文章數 51863關注度
往期回顧 全部

科技要聞

DeepSeek V4上線三天,第一批實測出來了

頭條要聞

坐在特朗普身邊親歷槍擊案的女記者 身份非常不一般

頭條要聞

坐在特朗普身邊親歷槍擊案的女記者 身份非常不一般

體育要聞

人類馬拉松"破二"新紀元,一場跑鞋軍備競賽

娛樂要聞

黃楊鈿甜為“耳環風波”出鏡道歉:謠言已澄清

財經要聞

Meta 140億收購Manus遭中國發改委否決

汽車要聞

不那么小眾也可以 smart的路會越走越寬

態度原創

健康
本地
數碼
手機
公開課

干細胞如何讓燒燙傷皮膚"再生"?

本地新聞

云游中國|逛世界風箏都 留學生探秘中國傳統文化

數碼要聞

6K/3K雙模切換!三星這款顯示器什么水平?

手機要聞

一加Nord CE6 Lite官宣5月7日發布,7000mAh電池

公開課

李玫瑾:為什么性格比能力更重要?

無障礙瀏覽 進入關懷版