Miongozo

Orodha ya Usalama kwa Programu Zilizojengwa kwa AI: Cha Kukagua Kabla ya Uzinduzi

Kabla watu halisi hawajatumia programu uliyojenga kwa AI, kagua mambo saba: kila ukurasa na kila API inakagua ni nani mtumiaji na anaruhusiwa kufanya nini; funguo za siri zinaishi kwenye seva, si kwenye kivinjari wala mazungumzo; pembejeo zote zinathibitishwa kwenye seva; kila mtumiaji anaweza kufikia rekodi zake tu; kuingia na miito ya gharama kubwa vina vikomo vya kasi; utegemezi wote umesasishwa; na unaweza kurejesha data yako ikitokea jambo baya. Orodha iliyo hapa chini inageuza kila moja kuwa majaribio mahususi unayoweza kuyafanya bila kusoma msimbo.

Vijenzi vya programu za AI ni vizuri katika kufanya vipengele vifanye kazi. Si moja kwa moja vya makini, kwa sababu "makini" mara chache huwa kwenye maelekezo. Matatizo mengi hapa chini yanatokana na mambo ambayo hakuna aliyeyaomba, kwa hiyo suluhisho mara nyingi ni kuuliza.

Jinsi ya kutumia orodha hii

Fanya kazi kwa mpangilio, na kwa kila kipengee fanya mambo mawili: muulize AI ihakikishe imeshughulikiwa, na jaribu mwenyewe. AI inaweza kuandika ukaguzi wa ruhusa; ni jaribio pekee linalokuambia kama unafanya kazi. Vipengee vimewekwa alama:

  • Lazima — fanya hivi kabla mtu mwingine yeyote hajatumia programu.
  • Inashauriwa — fanya hivi kabla hujapata watumiaji halisi au data halisi.
  • Baadaye — inafaa kufanyika programu inavyokua.

Ukiwa na saa moja tu, fanya kila Lazima.

1. Uthibitishaji: huyu ni nani?

Uthibitishaji maana yake ni kuthibitisha nani mtu fulani ni — mara nyingi kuingia. Tazama uthibitishaji ni nini kwa misingi na jinsi ya kuongeza kuingia kwenye programu yako kwa chaguo.

  • Lazima: Kila ukurasa unaoonyesha data binafsi unahitaji kuingia. Jaribio: toka kwenye akaunti, kisha bandika URL ya ukurasa binafsi moja kwa moja kwenye kivinjari.
  • Lazima: Kila API endpoint nyuma ya kurasa hizo pia inahitaji kuingia — si ukurasa peke yake. Jaribio: toka kwenye akaunti, fungua kichupo cha mtandao kwenye kivinjari, kisha jaribu tena ombi ambalo programu ilituma ulipokuwa umeingia.
  • Lazima: Nywila zinahifadhiwa zikiwa zimesimbwa kwa algoriti ya polepole ya kusimba nywila, si kwa maandishi wazi. Mwongozo wa OWASP wa kuhifadhi nywila unapendekeza Argon2id kwanza, huku scrypt, bcrypt au PBKDF2 zikiwa mbadala. Uliza: "Nywila zinahifadhiwaje?"
  • Inashauriwa: Viungo vya kuweka upya nywila vinaisha muda na vinafanya kazi mara moja tu.
  • Inashauriwa: Vidakuzi vya kikao vimewekwa alama Secure, HttpOnly na SameSite, na kutoka kunamaliza kikao kwenye seva.
  • Baadaye: Toa uthibitishaji wa hatua mbili, au kuingia kupitia mtoa huduma ambaye anao.

Kagua kila API route na ukurasa unaorudisha data ya mtumiaji. Kila moja lazima ikatae maombi kutoka kwa watumiaji wasioingia, kwenye seva, si kwenye msimbo wa ukurasa peke yake. Orodhesha routes ulizokagua.

2. Idhini: wanaruhusiwa kufanya nini?

Idhini ni hatua baada ya kuingia: kuamua mtumiaji huyu mahususi anaruhusiwa kuona na kubadilisha nini. Hapa ndipo programu za AI mara nyingi zina matundu makubwa, kwa sababu programu inaonekana sahihi — dashibodi ya kila mtumiaji inaonyesha data yake tu — wakati seva itatoa data ya yeyote ikiombwa moja kwa moja.

  • Lazima: Kila kusoma, kusasisha na kufuta kunakagua kwenye seva kwamba rekodi ni ya mtumiaji wa sasa (au timu yake).
  • Lazima: Jaribu: tengeneza akaunti mbili, A na B. Kama A, fungua rekodi moja ya A na uandike ID iliyo kwenye URL au ombi la mtandao. Ingia kama B na uombe ID hiyo hiyo. B lazima apate hitilafu, si data ya A.
  • Lazima: Kurasa za msimamizi na API endpoints za msimamizi zinakagua jukumu la mtumiaji kwenye seva. Kuficha kiungo cha msimamizi si ulinzi.
  • Lazima: Watumiaji wasiweze kubadilisha jukumu, bei, salio au sehemu za umiliki wao wenyewe kwa kuhariri ombi. Jaribio: kwenye kichupo cha mtandao, angalia ombi la kusasisha wasifu linatuma nini. Likijumuisha sehemu kama role au isAdmin, muulize AI ziondolewe kutoka upande wa mteja.
  • Inashauriwa: IDs kwenye URL zisiwe rahisi kukisia (IDs za nasibu badala ya 1, 2, 3). Hii si mbadala wa ukaguzi wa ruhusa, lakini inapunguza madhara ukikosekana.

Kwa kila endpoint inayosoma au kubadilisha rekodi, thibitisha kwenye seva kwamba mtumiaji aliyeingia anaimiliki au anaruhusiwa kuifikia. Rudisha 404 ikiwa sivyo. Kisha nionyeshe jinsi ungejaribu hili kwa akaunti mbili.

3. Ufikiaji wa safu za hifadhidata

"Ufikiaji wa safu" maana yake ni kila safu ya jedwali (booking moja, invoice moja) inaonekana tu kwa watumiaji inaowahusu. Kuna njia mbili za kawaida za kuitekeleza:

MbinuInavyofanya kaziChunga
Kwenye msimbo wa seva yakoKila swali linajumuisha kichujio kama "ambapo mmiliki ni mtumiaji wa sasa"Kichujio kimoja kilichosahauliwa kinafungua kila kitu
Kwenye hifadhidata (mfano, row-level security ya Postgres)Hifadhidata yenyewe inakataa safu ambazo mtumiaji haoniUsanidi zaidi; seva lazima iunganike kama mtumiaji sahihi

Njia zote mbili zinaweza kufanywa vizuri. Muhimu ni:

  • Lazima: Ikiwa kivinjari kinawasiliana moja kwa moja na hifadhidata (baadhi ya bidhaa za hifadhidata zinazoendeshwa zinaruhusu hilo), sheria za safu zimewashwa kwa kila jedwali. Bila hizo, yeyote mwenye ufunguo wa umma anaweza kusoma jedwali zima.
  • Lazima: Maswali yanachuja kwa mtumiaji wa sasa au timu, si kwa ID ambayo kivinjari kimetuma.
  • Inashauriwa: Data ya pamoja (miradi ya timu) ina kanuni wazi ya nani yumo kwenye timu, inayotekelezwa mahali pamoja.

4. Siri na funguo za API

Funguo ya API ni nywila ya huduma. Stripe, barua pepe na watoa huduma wa AI wote hutumia funguo hizi. Kwa msingi, tazama vigeu vya mazingira na siri ni nini.

  • Lazima: Funguo zinahifadhiwa kwenye vigeu vya mazingira au siri za mradi, si kuandikwa kwenye msimbo.
  • Lazima: Funguo zinazoweza kutumia pesa au kusoma data binafsi zinatumika kwenye seva pekee. Jaribio: fungua tovuti yako ya moja kwa moja, angalia chanzo cha ukurasa na faili za JavaScript kwenye devtools, kisha tafuta mwanzo wa ufunguo wako (kwa mfano sk_). Haupaswi kuonekana.
  • Lazima: Funguo hazijawahi kubandikwa kwenye mazungumzo, hazina ya umma, wala picha ya skrini. Ikiwa moja ilibandikwa, izungushe kwa mtoa huduma (tengeneza mpya, futa ya zamani).
  • Inashauriwa: Tumia funguo zenye vikwazo au mipaka pale mtoa huduma anapotoa. Stripe, kwa mfano, inapendekeza funguo zenye vikwazo zinazoruhusu tu ruhusa ambazo muunganisho wako unahitaji.
  • Inashauriwa: Funguo za majaribio na za moja kwa moja ni tofauti, na programu ya moja kwa moja inatumia funguo za moja kwa moja pale tu unapokuwa tayari.

Baadhi ya funguo zimekusudiwa kuwa za umma — funguo ya kuchapisha ya Stripe (pk_…) au funguo ya ramani iliyozuiwa kwenye kikoa chako. Kanuni inahusu funguo zinazotoa nguvu, si kila mfuatano unaofanana na ufunguo.

5. Uthibitishaji wa pembejeo

Kila kitu mtumiaji anachotuma — sehemu za fomu, mafaili yaliyopakiwa, vigeu vya URL — kinaweza kuwa chochote, si tu kile fomu yako inaruhusu.

  • Lazima: Uthibitishaji unafanyika kwenye seva, si kwenye kivinjari peke yake. Ukaguzi wa kivinjari ni kwa urahisi; mtu yeyote anaweza kuupita.
  • Lazima: Maswali ya hifadhidata yanatumia vigezo, si maandishi yaliyounganishwa kutoka kwa pembejeo ya mtumiaji (hii inazuia SQL injection). Muulize AI ithibitishe.
  • Lazima: Maandishi ambayo watumiaji wanaingiza yanaonyeshwa kama maandishi, si kuendeshwa kama HTML. Jaribio: weka <b>hello</b> kama jina lako. Unapaswa kuona tagi, si maandishi mazito.
  • Inashauriwa: Upakiaji wa mafaili unakagua aina na ukubwa, na mafaili yaliyopakiwa hayatolewi kutoka kikoa kikuu cha programu yako kama kurasa zinazoweza kuendeshwa.
  • Inashauriwa: Hitilafu zinazoonyeshwa kwa watumiaji ni rahisi ("Kuna tatizo"); maelezo ya kina yanaenda kwenye kumbukumbu za seva pekee.
  • Inashauriwa: Webhooks kutoka huduma kama Stripe zinathibitisha sahihi ya mtoa huduma kabla ya kuchukua hatua. Tazama webhook ni nini.

Ongeza uthibitishaji wa upande wa seva kwa kila fomu na API endpoint: sehemu zinazohitajika, urefu, mifumo na thamani zinazoruhusiwa. Kataa kila kitu kingine kwa ujumbe ulio wazi. Usionyeshe maelezo ya ndani ya hitilafu kwa watumiaji.

6. Vikomo vya kasi na matumizi mabaya

Kikomo cha kasi kinaweka idadi ya maombi ambayo mtu anaweza kutuma kwa muda fulani. Bila hivyo, mtu yeyote anaweza kukisia nywila siku nzima, kujaza fomu yako ya kujisajili, au kuongeza bili yako kwenye API inayolipiwa.

  • Lazima: Kuingia, kujisajili na kuweka upya nywila vina vikomo vya kasi kwa anwani ya IP na kwa akaunti.
  • Lazima: Chochote kinachokugharimu pesa kwa kila mwito — maombi ya modeli ya AI, SMS, barua pepe — kina kikomo kwa kila mtumiaji na kinahitaji kuingia.
  • Inashauriwa: Fomu za umma (mawasiliano, orodha ya kusubiri) zina ulinzi dhidi ya barua taka: kikomo cha kasi, sehemu ya siri isiyoonekana, au CAPTCHA.
  • Inashauriwa: Weka mipaka ya matumizi au tahadhari kwa watoa huduma wako wanaolipiwa, ili hitilafu au mshambulizi asiweze kuzalisha bili isiyo na kikomo.

7. Utegemezi

Programu zinajengwa kutoka kwa pakiti za chanzo huria, na pakiti wakati mwingine zina udhaifu unaojulikana.

  • Inashauriwa: Muulize AI ikague udhaifu unaojulikana (kwa miradi ya JavaScript, npm audit au sawa na hiyo kwa kidhibiti chako cha pakiti) na isasishe zilizoathirika.
  • Inashauriwa: Ondoa pakiti ambazo programu haitumii tena.
  • Inashauriwa: Kuwa mwangalifu na pakiti zenye watumiaji wachache sana au majina yanayofanana na makosa ya tahajia ya zile maarufu.
  • Baadaye: Kagua tena kila mwezi mmoja au miwili, au washa tahadhari za kiotomatiki ikiwa msimbo wako uko GitHub.

8. Nakala rudufu na urejeshaji

Usalama unajumuisha uwezo wa kurejesha kutoka kwa makosa — yako, ya AI, au ya mshambulizi.

  • Lazima: Jua data yako iko wapi na kama inahifadhiwa nakala. Usidhanie; angalia nyaraka za mwenyeji wako.
  • Inashauriwa: Weka usafirishaji wako wa mara kwa mara wa data muhimu (kwa mfano, kipengele cha kusafirisha CSV au hifadhi ya hifadhidata), kikihifadhiwa mahali tofauti.
  • Inashauriwa: Weka msimbo wako kwenye udhibiti wa matoleo, ili toleo lolote liweze kurejeshwa.
  • Inashauriwa: Vitendo vya kufuta (futa akaunti, futa mradi) vinauliza uthibitisho, na fikiria "kufuta laini" kinachoweza kutenduliwa kwa muda.
  • Baadaye: Jaribu kurejesha mara moja. Nakala rudufu ambayo haijawahi kurejeshwa ni matumaini, si mpango.

9. Kabla ya uzinduzi

  • Lazima: Tovuti ya moja kwa moja inatumia HTTPS kila mahali.
  • Lazima: Data ya mfano, akaunti za majaribio na kurasa za utatuzi kutoka maendeleoni zimeondolewa.
  • Inashauriwa: Sera ya faragha inaeleza data unayokusanya na kwa nini — inahitajika mahali pengi ukikusanya data binafsi. Usidai vyeti (SOC 2, HIPAA) usivyo navyo.
  • Inashauriwa: Una njia ya kuwasiliana nawe kuhusu masuala ya usalama, na unajua jinsi ya kuzungusha kila ufunguo haraka.

Kwa ukaguzi mpana zaidi kabla ya uzinduzi, nje ya usalama, tazama jinsi ya kupeleka prototaipu ya AI kwenye uzalishaji.

Wakati wa kupata ukaguzi wa kitaalamu

Orodha ya kukagua inakamata makosa ya kawaida; haichukui nafasi ya mtaalamu. Fikiria kulipia ukaguzi ukishughulikia namba za kadi mwenyewe badala ya malipo ya kulindwa yanayoendeshwa na mtoa huduma, ukihifadhi data ya afya, fedha au watoto, ukiuza kwa kampuni zinazoomba maswali ya usalama, au ukiwa na hatari kubwa ikiwa data itavuja. Msimbo wako kuweza kusafirishwa kunafanya ukaguzi huo kuwa rahisi zaidi.

Usalama unapojenga kwenye Mythex

Mythex haina paneli ya kuchanganua usalama, kwa hiyo orodha hapo juu ndiyo mchakato wa kufuata. Mambo kadhaa yanasaidia:

  • Siri za mradi. Hifadhi funguo chini ya mipangilio ya mradi → Siri, au kupitia kadi ya siri ambayo wakala anaonyesha kwenye mazungumzo, ili zibaki nje ya msimbo na ujumbe. Baada ya kubadilisha siri ya programu ya moja kwa moja, chapisha tena.
  • Hali za Mpango na Uliza. Muulize wakala akague ruhusa bila kuhariri: "Katika hali ya Uliza, orodhesha kila API route na ukaguzi wa ruhusa unaofanya."
  • /test inamfanya wakala abofye kwenye onyesho lako kama mtumiaji — inafaa kwa jaribio la akaunti mbili katika sehemu ya 2.
  • Vituo vya ukaguzi vinakuwezesha kurudisha nyuma mabadiliko yaliyovunja kitu.

Tazama Usalama kwa programu unazojenga na Vigeu vya mazingira na siri kwenye nyaraka. Ukiongeza akaunti za watumiaji baadaye, soma jinsi ya kuongeza kuingia kwenye programu yako.

Maswali

Je, programu zilizojengwa kwa AI ni dhaifu zaidi kiusalama?

Si kwa asili, lakini vijenzi vya AI vinaboresha kufanya kazi ifanye kazi, na ukaguzi wa usalama ni rahisi kuuacha wakati hakuna anayeuomba. Mapengo ya kawaida zaidi ni ukosefu wa ukaguzi wa ruhusa kwenye seva na funguo za API kuwekwa mahali ambapo kivinjari kinaweza kuzisoma.

Ukaguzi muhimu zaidi wa usalama kwa programu iliyojengwa kwa AI ni upi?

Ingia kama mtumiaji mmoja na ujaribu kuona au kubadilisha data ya mtumiaji mwingine, kwa kurasa za programu na kwa kubadilisha IDs kwenye URL. Udhibiti wa ufikiaji uliovunjika wa aina hii unashika nafasi ya kwanza katika OWASP Top 10:2025, orodha ya hatari kuu za usalama wa programu za wavuti.

Funguo za API katika programu iliyojengwa kwa AI zinapaswa kuwekwa wapi?

Katika vigeu vya mazingira au siri za mradi, zinazotumiwa tu na msimbo wa upande wa seva. Funguo zinazoweza kutumia pesa au kusoma data binafsi hazipaswi kuonekana kwenye msimbo wa kivinjari, kwenye mazungumzo, wala kwenye hazina ya Git.

Je, ninahitaji ukaguzi wa kitaalamu wa usalama kabla ya uzinduzi?

Kwa programu ndogo yenye data ya hatari ndogo, kupitia orodha kama hii ni mwanzo unaofaa. Ukishughulikia malipo moja kwa moja, data ya afya, fedha au watoto, au una mahitaji ya usalama kwenye mkataba, mpe mtu mwenye sifa akague.

Mythex · Pricing · Jenga chochote kwa AI · Violezo vya tovuti na programu · Mythex ikilinganishwa · Kamusi ya istilahi za kujenga programu kwa AI · Zana za bure za kujenga programu kwa AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)