Ба мундариҷа гузаштан
SimorghDev
← Ҳамаи мақолаҳо

Ин чӣ тавр кор мекунад · Дарси 4 аз 4Сатҳи миёна · 6 дақиқа хондан

Кӣ чиро мебинад: чаро қоидаҳои дастрасӣ бояд дар пойгоҳи додаҳо бошанд

Пинҳон кардани тугма ҳимоя нест. Худатон кӯшиш кунед ба системаи пӯшида ворид шавед ва бинед, ки қоидаҳо дар пойгоҳи додаҳо маълумотро чӣ тавр нигоҳ медоранд.

🎯 Дар ин дарс шумо мефаҳмед

  • фарқи тугмаи пинҳоншуда аз ҳимояи воқеии додаҳо
  • «нақшҳо» чистанд — меҳмон, аъзо, муҳаррир, маъмур
  • пойгоҳи додаҳо чӣ тавр метавонад дархостро, новобаста аз фиристанда, рад кунад
  • чаро пайвандҳои зеркашӣ, ки баъд аз 60 сония месӯзанд, бехатартаранд
  • се саволе, ки пеш аз эътимод кардани додаҳо ба ҳар барномасоз бояд дод
Мундариҷа

Мактабро тасаввур кунед. Дар дари ҳуҷраи муаллимон лавҳа овезон аст: «Фақат барои муаллимон». Аксари хонандагон онро эҳтиром мекунанд. Аммо дар қулф нест. Як хонандаи кунҷкобе, ки ба лавҳа аҳамият намедиҳад, метавонад дарояд ва саволҳои имтиҳонро хонад.

Бисёр сайтҳо додаҳоро маҳз ҳамин тавр ҳимоя мекунанд: бо лавҳа, на бо қулф. Ин дарс фарқро нишон медиҳад — ва ба шумо имкон медиҳад, ки худатон аз ин дар гузаштанро санҷед.

Намуна — Kamarob, платформае, ки ман барои ташкилотҳои ғайритиҷоратӣ сохтам: сайти оммавӣ, ҳисобҳои аъзоён, хабарҳо ва ҳуҷҷатҳои дохилӣ, чати даста ва панели маъмурӣ.

Саволе, ки муҳим аст

Вақте ташкилот додаҳои аъзоён, ҳуҷҷатҳои дохилӣ ё чатҳои пӯшидаро онлайн нигоҳ медорад, саволи муҳим «оё одамон ворид шуда метавонанд?» нест. Балки ин:

Ҳар шахс маҳз чиро хонда ва тағйир дода метавонад?

Барои ҷавоб ба ҳар шахс нақш медиҳанд:

  • Меҳмон — ворид нашудааст. Хабарҳои оммавиро мехонад, тавассути шакли тамос навишта метавонад.
  • Аъзо — ворид шудааст. Инчунин хабарҳо ва ҳуҷҷатҳои махсуси аъзоёнро мехонад, аз чат истифода мебарад.
  • Муҳаррир — инчунин хабар менависад ва ҳуҷҷат бор мекунад.
  • Маъмур — инчунин аъзоён ва нақшҳоро идора мекунад, номаҳои шакли тамосро мехонад.

То ин ҷо ҳама хуб. Саволи аслӣ — ин қоидаҳо дар куҷо зиндагӣ мекунанд.

Лавҳа дар дар: қоидаҳо фақат дар барнома

Роҳи соддатарин — қоидаҳоро ба барнома гузоштан. Аъзо тугмаи «Нест кардан»-ро намебинад. Меҳмон пайванди «Воридот»-ро намебинад. Бехатар менамояд.

Аммо барнома фақат яке аз роҳҳо ба додаҳост. Дар паси ҳар сайт сервер ва пойгоҳи додаҳо ҳаст ва барнома бо онҳо тавассути дархостҳо гап мезанад — ҳамон хел дархостҳое, ки шумо дар дарси 1 дидед. Ҳар касе, ки медонад, метавонад ин дархостҳоро мустақим фиристад — бе барнома, бе тугмаҳо. Аксар вақт калиди чунин дархостҳо ҳатто дар дохили худи саҳифаи веб аст, зеро он ба браузер лозим аст.

Агар дар худи пойгоҳ қоида набошад, вай ба ҳар касе, ки ин калидро дорад, ҷавоб медиҳад. Тугмаи пинҳоншуда танҳо лавҳа дар дари қулфнашуда буд.

Кӯшиш кунед ворид шавед

Интихоб кунед, ки шумо кистед ва чӣ кардан мехоҳед. Аввал Тавассути барнома-ро пахш кунед. Баъд — Дархостро рост ба пойгоҳ фиристодан. Баъд қоидаҳоро ба пойгоҳи додаҳо гузаронед ва боз кӯшиш кунед.

Санҷед

Кӣ чӣ карда метавонад

Қоидаҳо дар куҷоянд

Меҳмон тавонист ҳуҷҷати махсуси аъзоёнро хонад, вақте қоидаҳо фақат дар барнома буданд? Фошшавиҳои воқеӣ маҳз ҳамин тавр рух медиҳанд: касе ягон чизи маккорона «рахна» накард — танҳо аз пойгоҳ мустақим пурсиданд ва он ҷавоб дод.

Қулф дар дар: Row Level Security

Пойгоҳи додаҳое, ки Kamarob истифода мебарад — Postgres — метавонад ба ҳар ҷадвал қоида часпонад: пеш аз нишон додан ё тағйир додани сатр санҷ, ки кӣ мепурсад. Инро Row Level Security — RLS, қоидаҳо барои ҳар сатр меноманд.

Агар қоида «не» гӯяд, пойгоҳ рад мекунад. Фарқ надорад, ки кадом экран, скрипт ё дархост мепурсад. Барнома мисли пештара тугмаҳоро пинҳон мекунад — ин барои одамон қулай аст, — аммо додаҳоро дигар он нигоҳ намедорад.

Қоидаҳо чӣ гуна менамоянд

Ин чанд қоидаи воқеии Kamarob аст, каме соддакардашуда. Онҳоро қариб мисли матни англисӣ хондан мумкин аст:

-- Постҳои оммавии нашршударо ҳама мебинанд; аъзоён инчунин постҳои махсуси аъзоёнро мебинанд.
create policy "posts: published for their audience" on posts for select
  using (status = 'published' and (visibility = 'public' or is_member()));

-- Постҳоро фақат муҳаррирон ва маъмурон навишта метавонанд.
create policy "posts: editors write" on posts for insert with check (can_edit());

-- Номаҳои шакли тамосро фақат маъмурон мехонанд.
create policy "contact: admins read" on contact_messages for select using (is_admin());

-- Шахс фақат ном ва забони худро иваз карда метавонад, аммо ҳеҷ гоҳ нақши худро.
revoke update on profiles from authenticated;
grant update (full_name, locale) on profiles to authenticated;

Ду сатри охирро бодиққаттар дидан арзанда аст. Ҳатто шахси воридшуда, ки дархостро мустақим мефиристад, нақши худро иваз карда наметавонад — пойгоҳ иваз кардани ин сутунро иҷозат намедиҳад. Нақшҳо фақат тавассути як функсияи махсус иваз мешаванд, ки аввал месанҷад, ки онро маъмур даъват мекунад.

Пайвандҳое, ки месӯзанд

Ҳуҷҷатҳои аъзоён — ҳисоботҳо, нақшаҳо, шартномаҳо — файл ҳастанд. Файлҳоро одатан бо пайванд зеркашӣ мекунанд. Аммо пайвандро фиристодан мумкин аст: аъзо онро ба чати умумӣ нусхабардорӣ мекунад ва акнун ҳар касе, ки пайванд дорад, файлро зеркашӣ карда метавонад. То абад.

Барои ҳамин Kamarob пайвандҳои имзошуда медиҳад, ки ҳамагӣ 60 сония кор мекунанд. Аъзо «Зеркашӣ»-ро пахш мекунад, сервер месанҷад, ки ӯ аъзо аст, пайванди тоза месозад ва браузер фавран аз он истифода мебарад. Агар касе ин пайвандро фиристад, то вақте ки онро мекушоянд, он аллакай мурдааст.

Санҷед

Пайванде, ки месӯзад

Ҳуҷҷатҳои аъзоён тавассути пайванде зеркашӣ мешаванд, ки 60 сония кор мекунад.

Қоидаҳоро санҷед, на фақат экранҳоро

Қоидаҳои санҷиданашуда оҳиста-оҳиста «шино мекунанд»: касе ҷадвал илова кард ва қоидаашро фаромӯш кард ё функсияро иваз кард ва сӯрохӣ кушод. Барои ҳамин Kamarob маҷмӯи алоҳидаи тестҳо дорад, ки бо номи одамони гуногун ба пойгоҳи воқеӣ ворид мешаванд ва месанҷанд, ки ҳар кас чиро карда метавонад ва чиро не. Масалан:

  • меҳмон профилҳо, чат ва воридотро хонда наметавонад;
  • демо-маъмур панели маъмуриро кушода метавонад, аммо ҳар тағйирот ба ӯ манъ аст;
  • демо-маъмур фақат одамон ва паёмҳои намунавиро мебинад, ҳеҷ гоҳ додаҳои меҳмонони воқеиро;
  • ҳеҷ кас бе ворид шудан файли махсуси аъзоёнро зеркашӣ карда наметавонад.

Ин тестҳо пеш аз ҳар нашр иҷро мешаванд. Агар қоида вайрон шавад, нашр қатъ мегардад.

Демо-маъмур: нишон додан бе хатар

Дар саҳифаи асосии Kamarob вуруди оммавии намоишӣ ба панели маъмурӣ ҳаст, то ҳар кас бинад, ки он чӣ тавр кор мекунад. Хатарнок садо медиҳад — аммо бо қоидаҳо дар пойгоҳ ин бехатар аст: нақши намоишӣ панели маъмуриро дида метавонад, фақат намунаҳои сохташударо мебинад ва ҳар кӯшиши тағйир доданро худи пойгоҳи додаҳо рад мекунад. Ҳамон қоидаҳое, ки додаҳоро нигоҳ медоранд, имкон медиҳанд, ки системаро ошкоро нишон диҳем.

Ба ташкилотҳое, ки система интихоб мекунанд

Пеш аз он ки додаҳои аъзоёни худро ба барномасоз — ё ба платформаи тайёр — бовар кунед, се савол диҳед:

  1. Қоидаҳои дастрасӣ дар куҷо санҷида мешаванд? Ҷавоби хуб: дар пойгоҳи додаҳо (ё дар сервер), на фақат дар барнома.
  2. Онҳо бо тестҳо санҷида мешаванд? Ҷавоби хуб: ҳа, худкор, пеш аз ҳар нашр, бо нақшҳои гуногун.
  3. Агар дархостҳоро бе барнома фиристанд, чӣ мешавад? Ҷавоби хуб: айнан ҳамон чи тавассути барнома — рад дар ҷое, ки мумкин нест.

Агар ба саволи аввал «дар барнома» ҷавоб диҳанд — додаҳои шумо аз фошшавӣ як хонандаи кунҷкоб дуранд.

Худро санҷед

Санҷед

Худро санҷед

  1. 1. Аъзо тугмаи «Воридот»-ро намебинад. Оё ин воридотро ҳимоя мекунад?

  2. 2. Қоидаҳо фақат дар барнома ҳастанд ва меҳмон дархостро рост ба пойгоҳ мефиристад. Чӣ мешавад?

  3. 3. Row Level Security чӣ кор мекунад?

  4. 4. Чаро пайванди зеркашӣ фақат 60 сония кор мекунад?

  5. 5. Оё аъзои воридшуда бо фиристодани дархости мустақим худро маъмур карда метавонад?

Луғати хурд

  • Нақш — маҷмӯи ҳуқуқҳо: меҳмон, аъзо, муҳаррир, маъмур.
  • Дархост — паёме, ки барнома ба сервер ё пойгоҳ барои гирифтани додаҳо ё тағйир додани чизе мефиристад.
  • Row Level Security (RLS) — қоидаҳо дар пойгоҳи додаҳо, ки сатр ба сатр ҳал мекунанд, ки кӣ чиро дида ва тағйир дода метавонад.
  • Сиёсат (policy) — яке аз чунин қоидаҳо.
  • Пайванди имзошуда — пайванди зеркашӣ, ки исботи ҳуқуқро дорад ва зуд месӯзад.
  • Ҳисоби намоишӣ — вуруди оммавӣ, ки дида метавонад, аммо ҳеҷ чизро тағйир дода наметавонад.
  • Фошшавии додаҳо — вақте маълумот ба касоне мерасад, ки набояд расад.

Додаҳои аъзоёни худро нигоҳ доред

Ман барои ташкилотҳо платформаҳо месозам — хабарҳо, ҳуҷҷатҳо, чат, панели маъмурӣ — бо қоидаҳои дастрасӣ дар пойгоҳи додаҳо ва тестҳо барои ҳар нақш, бо забонҳои тоҷикӣ, русӣ ва англисӣ. Намоишро санҷед: дар саҳифаи асосии kamarob.simorgh-dev.workers.dev вуруд ба панели маъмурӣ танҳо барои дидан ҳаст. Саволҳо: @SimorghDev.