FixVibe

// docs / baas security / supabase storage

Seicliosta slándála buicéid stórais Supabase: 22 mhír

Is fillteán tanaí thart ar bhuicéad atá comhoiriúnach le S3 agus an múnla céanna slándála ar leibhéal as as leis an mbunachar sonraí é Supabase Storage. Ciallaíonn sé sin go gcuireann na heachtraí RLS céanna a théann i bhfeidhm ar tháblaí isteach ar rochtain comhaid — agus cúpla ceann a bhaineann go sonrach le stóras a thagann chun cinn nuair a chuireann uirlisí códaithe AI uaslódálacha ar bun. Is seicliosta 22-mhír é seo thar chúig chuid: cumraíocht buicéid, polasaithe RLS, bailíochtú uaslódála, URLanna sínithe, agus sláinteachas oibríochta. Tá gach ceann acu infhíoraithe i níos lú ná 15 nóiméad.

Tá gach mír thíos riachtanach. Le haghaidh meicnic bhunúsach RLS, féach Scanóir RLS Supabase. Le haghaidh an aicme nochta eochrach in aice le stóras, féach Eochair an ról seirbhíse Supabase nochta in JavaScript.

Cumraíocht buicéid

Tosaigh leis na réamhshocruithe cearta. Sceitheann buicéad míchumraithe comhaid bíodh do RLS ceart nó ná bíodh.

  1. Réamhshocraigh gach buicéad go príobháideach. I bPainéal Supabase → Storage → Buckets, socraigh an toggle Public bucket as mura bhfuil cúis shainráite agat (sócmhainní margaíochta, avatáir phoiblí gan PII). Téann buicéid phoiblí thar RLS le haghaidh oibríochtaí léite — is féidir le haon duine a bhfuil ainm an bhuicéid aige liostáil agus íoslódáil.
  2. Socraigh teorainn chrua méid comhaid ar gach buicéad. Painéal → socruithe Buicéid → Teorainn méid comhaid. Is réamhshocrú ciallmhar é 50 MB d'uaslódálacha úsáideoirí; ardaigh é d'aon ghnó le haghaidh cásanna úsáide físeáin / comhaid mhóra. Gan teorainn, is féidir le huaslódáil mhailíseach amháin do chuóta stórais nó do bhandaleithead míosúil a ídiú.
  3. Cuir srian le cineálacha MIME ceadaithe in aghaidh an bhuicéid. Liosta cineálacha MIME ceadaithe — liosta sainráite a cheadaíonn, ní liosta a bhactann. image/jpeg, image/png, image/webp do bhuicéid íomhá-amháin. Ná ceadaigh text/html, application/javascript, nó image/svg+xml riamh i mbuicéad ábhar úsáideora — feidhmíonn siad sa bhrabhsálaí nuair a fhreastalaítear orthu trí URL sínithe.
  4. Úsáid buicéad amháin in aghaidh an chineáil ábhair, ní buicéad roinnte amháin. Is iad na socruithe in aghaidh an bhuicéid (méid, cineálacha MIME, polasaithe RLS) an grádán atá agat. Tá sé níos éasca buicéad user-avatars, buicéad document-uploads, agus buicéad public-assets a ghlasáil ná buicéad measctha amháin.
  5. Fíoraigh cumraíocht CORS má dhéanann an t-éadan uaslódáil. Má dhéanann úsáideoirí uaslódáil go díreach ón mbrabhsálaí chuig URL sínithe, ní mór don CORS buicéid do bhunáit táirgthe a liostáil. Tá * inghlactha le haghaidh buicéid phoiblí amháin — riamh le haghaidh buicéid ina bhfuil PII úsáideoirí.

Polasaithe RLS ar storage.objects

Stórálann Supabase Storage meiteashonraí comhaid sa tábla storage.objects. Rialaíonn RLS ar an tábla sin cé atá in ann comhaid a léamh, a uaslódáil, a nuashonrú, nó a scriosadh. Gan RLS, is é bratach poiblí/príobháideach an bhuicéid do chosaint amháin.

  1. Deimhnigh go bhfuil RLS cumasaithe ar storage.objects. Caithfidh SELECT rowsecurity FROM pg_tables WHERE schemaname = 'storage' AND tablename = 'objects'; true a thabhairt ar ais. Cumasaíonn Supabase é de réir réamhshocraithe ar thionscadail nua; deimhnigh nár díchumasaíodh é.
  2. Scríobh polasaí SELECT atá scópaithe le auth.uid() do bhuicéid phríobháideacha. CREATE POLICY "users_read_own_files" ON storage.objects FOR SELECT USING (auth.uid()::text = (storage.foldername(name))[1]);. Is é an coinbhinsiún comhaid a stóráil faoi [user-id]/[filename] agus storage.foldername() a úsáid chun an t-úinéir a bhaint as an gcosán.
  3. Scríobh polasaí INSERT a fhorghníomhaíonn an coinbhinsiún cosáin céanna. CREATE POLICY "users_upload_own" ON storage.objects FOR INSERT WITH CHECK (auth.uid()::text = (storage.foldername(name))[1]);. Gan WITH CHECK, is féidir le húsáideoir fíordheimhnithe uaslódáil isteach i bhfillteán úsáideora eile.
  4. Cuir polasaithe UPDATE agus DELETE leis má thacaíonn d'aip le heagarthóireachtaí nó scriosadh comhaid. Teastaíonn polasaí dá chuid féin ó gach ordú. Má scipeáiltear DELETE, ní féidir le húsáideoirí fíordheimhnithe a gcuid comhad féin a bhaint; má scipeáiltear UPDATE, teipfidh ar ath-scríbhinní comhaid go ciúin.
  5. Tástáil rochtain tras-úsáideora i dhá sheisiún brabhsálaí. Sínigh isteach mar Úsáideoir A, uaslódáil comhad, cóipeáil an cosán. Sínigh isteach mar Úsáideoir B i mbrabhsálaí eile, déan iarracht an comhad a fháil tríd an REST API. Caithfidh an freagra a bheith 403404, riamh 200.
sql
-- Confirm RLS on storage.objects
SELECT rowsecurity
FROM   pg_tables
WHERE  schemaname = 'storage' AND tablename = 'objects';

-- SELECT policy: scope reads to the owning user's folder.
CREATE POLICY "users_read_own_files"
  ON storage.objects
  FOR SELECT
  USING (auth.uid()::text = (storage.foldername(name))[1]);

-- INSERT policy: enforce the [user-id]/[filename] path convention.
CREATE POLICY "users_upload_own"
  ON storage.objects
  FOR INSERT
  WITH CHECK (auth.uid()::text = (storage.foldername(name))[1]);

Bailíochtú uaslódála

Bailíochtaigh gach uaslódáil ar thaobh an fhreastalaí, fiú nuair atá srianta MIME agus méide ag an mbuicéad. Gineann uirlisí códaithe AI bailíochtú cliant-amháin de réir réamhshocraithe; cosnaíonn sé sin tada.

  1. Athsheiceáil cineál MIME ar thaobh an fhreastalaí ó na fíor-bhearta de chuid an chomhaid, ní ón gceanntásc Content-Type. Úsáid leabharlann ar nós file-type (Node) nó snámhán ardbharra. Is féidir le hionsaitheoir Content-Type: image/jpeg a éileamh ar chomhad atá ina ualach polyglot HTML / JavaScript i ndáiríre.
  2. Bain meiteashonraí EXIF ó íomhánna uaslódáilte. Is féidir le EXIF comhordanáidí GPS, sraithuimhreacha gléis, agus stampaí ama a bheith aige. Úsáid sharp le .withMetadata(false)exif-parser chun é a bhaint roimh stóráil.
  3. Diúltaigh SVGanna ina bhfuil clibeanna script nó láimhseálaithe onload. Is XML é SVG — agus ceadaíonn go leor aipeanna a ghintear le AI uaslódáil SVG mar "níl ann ach íomhá." Úsáid DOMPurify ar thaobh an fhreastalaí nó diúltaigh d'uaslódálacha SVG go hiomlán.
  4. Úsáid ainmneacha comhad cinntitheacha do-thomhaiste. Ná coinnigh an t-ainm comhaid bunaidh. Úsáid UUID nó hais d'inneachar an chomhaid. Sceitheann ainmneacha comhad bunaidh ("passport_scan_2024_01_15.jpg") agus cumasaíonn ainmneacha intuartha áireamh.

URLanna sínithe

Is iad URLanna sínithe an chaoi a fhaigheann cliaint rochtain ar bhuicéid phríobháideacha. Tá tábhacht leis an éag, scóp an bhuicéid, agus an méid a logáiltear.

  1. Réamhshocraigh éag URL sínithe go 1 uair an chloig nó níos lú. Tógann createSignedUrl(path, expiresIn) sa Supabase JS SDK soicindí. Ná húsáid luachanna ar nós 31536000 (bliain amháin) riamh — éiríonn an URL ina nasc leath-phoiblí buan.
  2. Ná stóráil URLanna sínithe i do bhunachar sonraí riamh. Gin cinn úra ar thaobh an fhreastalaí ar gach iarratas. Tugann URL sínithe stóráilte le héag 1-bhliana a sceitheann trí dhumpáil bhunachar sonraí rochtain fhadtéarmach.
  3. Logáil giniúint URL sínithe, ní díreach uaslódálacha comhaid. Má cheapann tú gur bhain comhréiteach níos déanaí, teastaíonn uait fios a bheith agat cé a ghin cén URL agus cén uair. Logáil auth.uid() + buicéad + cosán an oibiachta + stampa ama.
  4. Úsáid an rogha downloadAs nuair a fhreastalaíonn tú ar chomhaid uaslódáilte ag úsáideoirí. Cuireann createSignedUrl(path, expiresIn, { download: '.jpg' }) iallach ar cheanntásc Content-Disposition: attachment sa chaoi go n-íoslódáiltear an comhad in ionad é a rindreáil — sáraíonn sé an aicme feidhmithe HTML / SVG / HTML-i-PDF.

Sláinteachas oibríochta

Athraíonn cumraíocht stórais le himeacht ama. Coinníonn na ceithre mhír oibríochta seo an dromchla teann.

  1. Iniúchadh buicéid go ráithiúil. Painéal → Storage → Buckets. Deimhnigh staid phoiblí/phríobháideach agus liostaí cineáil MIME a mheaitseálann le hionchas na haipe. Éiríonn buicéid a cruthaíodh "go sealadach" buan mura mbaineann aon duine iad.
  2. Déan monatóireacht ar oibríochtaí liosta gan ainm. Taifeadann logaí stórais (Painéal → Logs → Storage) iarratais LIST. Ciallaíonn spící d'iarratais liosta gan ainm in aghaidh buicéid phríobháideacha go bhfuil duine éigin á phromhadh ón taobh amuigh.
  3. Socraigh polasaí coinneála d'uaslódálacha gearrshaolacha. Ba chóir do bhuicéid sealadacha (réamhamharc íomhá, uaslódálacha dréachta) féin-scriosadh tar éis 24-72 uair trí fheidhm sceidealaithe. Is dliteanas é coinneáil éiginnte faoi oibleagáidí íosmhéadaithe sonraí GDPR / CCPA.
  4. Rith scanadh FixVibe go míosúil. Déanann an seic baas.supabase-storage-public promhadh do bhuicéid a fhreagraíonn do GET + LIST gan ainm. Cuirtear buicéid nua leis; athraíonn buicéid sheana infheictheacht — ní bheireann ach scanadh leanúnach ar an athrú.

Na chéad chéimeanna eile

Rith scanadh FixVibe in aghaidh do URL táirgthe — taispeántar liostáil stórais gan ainm faoi baas.supabase-storage-public. Cuir an seicliosta seo le Scanóir RLS Supabase don chiseal tábla agus Eochair an ról seirbhíse Supabase nochta in JavaScript don aice nochta eochrach. Le haghaidh míchumraíochtaí stórais thar sholáthraithe BaaS eile, féach Scanóir míchumraíochta BaaS.

// scan do dhromchla baas

Aimsigh an tábla oscailte sula bhfaighidh duine eile é.

Cuir URL táirgthe isteach. Áiríonn FixVibe na soláthraithe BaaS a labhraíonn d'aip leo, déanann sé méarloirg ar a gcrícphointí poiblí, agus tuairiscíonn sé cad is féidir le cliant gan fhíordheimhniú a léamh nó a scríobh. Saor in aisce, gan suiteáil, gan chárta.

  • Sraith saor in aisce — 3 scanadh sa mhí, gan chárta clárúcháin.
  • Méarlorg BaaS éighníomhach — gan gá le fíorú fearainn.
  • Supabase, Firebase, Clerk, Auth0, Appwrite, agus tuilleadh.
  • Leideanna deisithe AI ar gach toradh — greamaigh ar ais isteach i Cursor / Claude Code.
Rith scanadh BaaS saor in aisce

níl clárú ag teastáil

Seicliosta slándála buicéid stórais Supabase: 22 mhír — Docs · FixVibe