国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

Supabase 安全防坑指南:你的 anon key 其實是透明的

0
分享至

Supabase 安全防坑指南:你的 anon key 其實是透明的


最佳策略,沒有絕對把握不要自己做用戶登錄和收付款。只需要抱大腿。比如在Steam,Apple,微信等平臺發(fā)布產(chǎn)品。

在使用 Supabase 開發(fā)項目時,我發(fā)現(xiàn)很多新手(包括早期的我)都會有一個誤區(qū):覺得只要把anon key藏在環(huán)境變量里就安全了。

但事實是:你的anon key根本不是秘密。它是發(fā)送給瀏覽器和客戶端的,任何人都能拿到。

Supabase 的安全護(hù)城河不在于隱藏這個 key,而在于你的RLS(行級安全策略)。

今天我整理了一份 Supabase 安全硬化指南,如果你正在用它做小項目,建議對照檢查。

核心風(fēng)險:那把“萬能鑰匙”

Supabase 提供了兩把鑰匙:

  1. anonkey:公開的。就像你家大門的把手,誰都能摸到。
  2. service_rolekey:超級管理員。它會繞過所有的 RLS 限制。絕對不能暴露在客戶端代碼里!

如果你的數(shù)據(jù)漏了,通常不是因為 key 被盜,而是因為你的 RLS 策略(Row Level Security)根本沒開,或者寫得太松。

常見的幾個“大坑”

在看代碼前,先看看這幾個典型的翻車現(xiàn)場:

  • 完全沒開啟 RLS:這是頭號死法。只要沒開,anon角色就能通過 REST API 讀寫所有數(shù)據(jù)。
  • 過于寬容的策略:比如FOR SELECT USING (true),這相當(dāng)于直接把數(shù)據(jù)表公開給全人類。
  • 盲目信任客戶端傳來的 User ID:如果你在策略里用user_id = request.body.user_id,黑客只需要改一下請求包里的 ID,就能看別人的數(shù)據(jù)。
動手硬化:小項目的 5 步安全策略 第一步:開啟 RLS,立刻,馬上!

在插入任何數(shù)據(jù)前,先執(zhí)行這一句。默認(rèn)情況下,開啟 RLS 但不寫 Policy,意味著“零訪問”。

ALTER TABLE your_table ENABLE ROW LEVEL SECURITY;
第二步:只信任auth.uid()

永遠(yuǎn)不要相信客戶端發(fā)來的 User ID。Supabase 的 JWT 是經(jīng)過驗證的,用auth.uid()才是防篡改的。

-- ? 安全做法:通過驗證后的 JWT 獲取當(dāng)前用戶 ID
CREATE POLICY "own_data_only" ON notes
  FOR ALL USING (auth.uid() = user_id)
  WITH CHECK (auth.uid() = user_id);
第三步:顯式限制anon角色

除非你明確需要公開,否則默認(rèn)應(yīng)該拒絕匿名訪問。比如,只允許匿名用戶讀取設(shè)為“公開”的文章:

-- 只允許讀取公開內(nèi)容
CREATE POLICY "public_posts" ON posts
  FOR SELECT USING (is_public = true);
第四步:使用SECURITY DEFINER函數(shù)

對于復(fù)雜的邏輯,建議寫成 Postgres 函數(shù)并放在服務(wù)端運行。

CREATE FUNCTION get_my_profile()
RETURNS json
LANGUAGE sql
SECURITY DEFINER  -- 以函數(shù)所有者權(quán)限運行,而非調(diào)用者
AS $$
  SELECT row_to_json(profiles) FROM profiles WHERE id = auth.uid();
$$;
第五步:別忘了 Storage 存儲桶

即便表鎖死了,如果 Storage Bucket 設(shè)為 Public,里面的文件依然是裸奔的。建議針對文件夾做 RLS:

-- 只允許用戶上傳到自己的文件夾
CREATE POLICY "user_folder_only" ON storage.objects
  FOR INSERT WITH CHECK (
    auth.uid()::text = (storage.foldername(name))[1]
  );
我的安全 CheckList

每次項目上線前,我會掃一遍清單:

  • 所有表都開啟了 RLS
  • 策略里全部使用auth.uid()
  • service_rolekey 只存在于服務(wù)端的.env
  • .env已經(jīng)加到了.gitignore
  • 在 Supabase Dashboard 的 Policy 模擬器里測過anon權(quán)限
  • 對敏感表禁用了 Realtime 實時訂閱
結(jié)語

記住 Supabase 安全的黃金法則:把你的anon key當(dāng)成完全公開的東西。你的安全模型必須完全建立在 RLS 策略和數(shù)據(jù)庫函數(shù)上。

如果你在做測試項目,最快的安全方案就是:給每張表都開 RLS,但不寫任何 Policy,直到你明確知道哪裡需要開放。

希望這些經(jīng)驗?zāi)軒湍惚荛_數(shù)據(jù)外泄的坑!

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

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.

相關(guān)推薦
熱點推薦
83歲百億大亨愛上33歲小嬌夫,卻戀愛腦沒簽婚前協(xié)議!離婚抓馬開撕了...

83歲百億大亨愛上33歲小嬌夫,卻戀愛腦沒簽婚前協(xié)議!離婚抓馬開撕了...

英國那些事兒
2026-04-09 23:21:14
又?jǐn)厥滓蝗耍;鹨呀?jīng)不可能了

又?jǐn)厥滓蝗耍;鹨呀?jīng)不可能了

深度報
2026-04-11 22:31:22
哪個細(xì)節(jié)讓你突然發(fā)現(xiàn)自己消費降級了?電動車,真的誰騎誰香

哪個細(xì)節(jié)讓你突然發(fā)現(xiàn)自己消費降級了?電動車,真的誰騎誰香

另子維愛讀史
2026-02-13 21:18:44
鄭麗文回家!大陸千億大禮包送抵臺島,打臉美政客說麗文訪陸無用

鄭麗文回家!大陸千億大禮包送抵臺島,打臉美政客說麗文訪陸無用

涵豆說娛
2026-04-12 19:41:39
H10:這是哈弗近10年來最偉大的車型

H10:這是哈弗近10年來最偉大的車型

三農(nóng)老歷
2026-04-12 03:57:41
兩岸統(tǒng)一后:臺灣為何不宜“建省”?背后是一段深刻歷史教訓(xùn)

兩岸統(tǒng)一后:臺灣為何不宜“建省”?背后是一段深刻歷史教訓(xùn)

三石記
2026-04-11 11:52:20
內(nèi)分泌主任提醒:以為很正常,其實是糖尿病變嚴(yán)重的7個信號

內(nèi)分泌主任提醒:以為很正常,其實是糖尿病變嚴(yán)重的7個信號

垚垚分享健康
2026-04-12 14:20:12
萬科全員降薪

萬科全員降薪

地產(chǎn)微資訊
2026-04-11 13:46:45
“余生好好走”,知名央視主持人王小丫,病床上的留言字字催淚

“余生好好走”,知名央視主持人王小丫,病床上的留言字字催淚

近史談
2026-03-31 18:57:49
古人類為何主動丟掉陰莖骨?靈長類都有,唯獨我們是例外

古人類為何主動丟掉陰莖骨?靈長類都有,唯獨我們是例外

心中的麥田
2026-04-11 19:00:02
工信部原黨組副書記、副部長蘇波:我們有可能在“十五五”末期建成新能源汽車強(qiáng)國

工信部原黨組副書記、副部長蘇波:我們有可能在“十五五”末期建成新能源汽車強(qiáng)國

每日經(jīng)濟(jì)新聞
2026-04-11 10:51:07
688709,大幅下修業(yè)績預(yù)告!公司致歉!

688709,大幅下修業(yè)績預(yù)告!公司致歉!

證券時報e公司
2026-04-12 19:52:48
賭王何鴻燊女兒突然辭世享年60歲!因乳癌復(fù)發(fā)不敵病魔!終身未婚無子女!

賭王何鴻燊女兒突然辭世享年60歲!因乳癌復(fù)發(fā)不敵病魔!終身未婚無子女!

我愛追港劇
2026-04-12 21:46:22
美伊談判破裂的三大癥結(jié):霍爾木茲、濃縮鈾和百億凍結(jié)資金

美伊談判破裂的三大癥結(jié):霍爾木茲、濃縮鈾和百億凍結(jié)資金

華爾街見聞官方
2026-04-12 16:55:53
老公自駕不帶妻子后續(xù):婆婆強(qiáng)令同行,丈夫甩臉為難,目的藏不住

老公自駕不帶妻子后續(xù):婆婆強(qiáng)令同行,丈夫甩臉為難,目的藏不住

閱微札記
2026-04-09 22:21:32
兩任妻子和諧同框!網(wǎng)友:羅斯有一手啊

兩任妻子和諧同框!網(wǎng)友:羅斯有一手啊

草莓解說體育
2026-04-12 15:13:07
樊振東退出世乒賽僅2天,國際乒聯(lián)主席表態(tài),12個字信息量有點大

樊振東退出世乒賽僅2天,國際乒聯(lián)主席表態(tài),12個字信息量有點大

做一個合格的吃瓜群眾
2026-04-11 16:48:41
女教師帶出5屆狀元班,優(yōu)秀教師卻落選,轉(zhuǎn)身去私立,全年級挽留

女教師帶出5屆狀元班,優(yōu)秀教師卻落選,轉(zhuǎn)身去私立,全年級挽留

第四思維
2025-09-03 09:30:25
1969年,廚師于存失誤做了苦瓜炒雞丁,毛主席好奇:這是誰的發(fā)明

1969年,廚師于存失誤做了苦瓜炒雞丁,毛主席好奇:這是誰的發(fā)明

鶴羽說個事
2026-04-11 22:15:10
單程決死突擊!伊朗飛行員壯烈犧牲,炸翻美司令部,換掉3架美機(jī)

單程決死突擊!伊朗飛行員壯烈犧牲,炸翻美司令部,換掉3架美機(jī)

滄海旅行家
2026-04-12 21:24:43
2026-04-12 22:35:00
教你畫像素畫 incentive-icons
教你畫像素畫
像素畫教程
2420文章數(shù) 12214關(guān)注度
往期回顧 全部

科技要聞

理想稱遭惡意拉踩,東風(fēng)日產(chǎn):尊重同行

頭條要聞

媒體:美伊面對面長談20多小時無果 其實早有預(yù)兆

頭條要聞

媒體:美伊面對面長談20多小時無果 其實早有預(yù)兆

體育要聞

創(chuàng)造歷史!五大聯(lián)賽首位女性主教練誕生

娛樂要聞

賭王女兒何超蕸病逝,常年和乳癌斗爭

財經(jīng)要聞

美伊談判破裂的三大癥結(jié)

汽車要聞

煥新極氪007/007GT上市 限時19.39萬起

態(tài)度原創(chuàng)

房產(chǎn)
數(shù)碼
本地
藝術(shù)
軍事航空

房產(chǎn)要聞

土地供應(yīng)突然暴跌!2026??跇鞘校窬执笞?!

數(shù)碼要聞

三星推出Music Studio 5/7無線音箱 客廳與書架皆可勝任

本地新聞

12噸巧克力有難,全網(wǎng)化身超級偵探添亂

藝術(shù)要聞

殯葬新規(guī)落地,小區(qū)里的“骨灰房”真能絕跡嗎?

軍事要聞

美國副總統(tǒng)萬斯:美伊談判未能達(dá)成協(xié)議

無障礙瀏覽 進(jìn)入關(guān)懷版