Miongozo

Jinsi ya Kulinda API Keys kwenye Programu Yako

Ili kulinda API keys, zihifadhi kama siri au vigezo vya mazingira kwenye mwenyeji wako, zitumie tu kwenye msimbo wa upande wa seva, na usiwahi kuzibandika kwenye gumzo, faili za msimbo, picha za skrini au hifadhi ya Git. Mpe kila key ruhusa ndogo kabisa inayohitaji, weka vikomo vya matumizi kwa mtoa huduma, na key ikivuja wakati wowote, izungushe — tengeneza mpya na ufute ya zamani — badala ya kuficha tu mahali ilipoonekana.

API key ni nenosiri la huduma. Key yako ya OpenAI inamruhusu mtu kutumia pesa zako kwenye AI; key yako ya siri ya Stripe inamruhusu mtu kutoa marejesho; key ya mtoa huduma wako wa barua pepe inamruhusu mtu kutuma barua kwa jina lako. Wajenzi wa programu za AI ni wazuri katika kuziunganisha, lakini si kila mara wanakuwa makini kuhusu zinakoishia, kwa hiyo mwongozo huu unaeleza jinsi ya kuziweka salama na jinsi ya kukagua.

Funguo za umma dhidi ya funguo za siri

Si kila key ni ya siri. Kujua tofauti kunakuzuia kuogopa ile isiyofaa na kupuuza ile sahihi.

AinaMifanoInaweza kuwa kwenye kivinjari?
Funguo za umma (publishable)Key ya Stripe pk_…, key ya ramani iliyozuiwa kwa domeni yako, baadhi ya vitambulisho vya uchambuziNdiyo — imeundwa kwa hilo
Funguo za siriStripe sk_…, key za OpenAI na Anthropic, key za mtoa huduma wa barua pepe, nywila za hifadhidataKamwe
Funguo za huduma/msimamiziKey zinazopita kanuni za ufikiaji kwenye hifadhidata iliyohostiwaKamwe — zishughulikie kama nyeti zaidi

Ikiwa hujui key ni aina gani, angalia nyaraka za mtoa huduma. Ukiwa na shaka,ichukulie kama siri.

Hatua ya 1: Hifadhi key kama siri, si kwenye msimbo

Funguo zinapaswa kuwa kwenye vigezo vya mazingira vya mwenyeji wako au mipangilio ya siri. Msimbo wako unazisoma kwa jina wakati wa kukimbia (kwa mfano process.env.OPENAI_API_KEY), kwa hiyo thamani haionekani kamwe kwenye faili zako. Kwa msingi, angalia vigezo vya mazingira na siri ni nini.

Hamisha kila API key kutoka kwenye msimbo kwenda kwenye vigezo vya mazingira. Orodhesha kila key uliyopata, ilikuwa kwenye faili gani, na jina la kigezo ulilotumia. Usionyeshe thamani zao.

Kisha hakikisha hakuna iliyobaki:

Tafuta mradi mzima, ikiwemo faili za usanidi na faili yoyote ya .env, kwa chochote kinachofanana na API key au nenosiri. Ripoti faili na mstari, si thamani.

Hatua ya 2: Tumia funguo za siri upande wa seva pekee

Hii ndiyo kanuni muhimu zaidi. Chochote kinachopokelewa na kivinjari, mgeni anaweza kukisoma — kurasa za chanzo na faili za JavaScript zote zinaonekana kwenye zana za msanidi.

Kwa hiyo, ikiwa programu inahitaji kuita OpenAI, kivinjari kinapaswa kuita seva yako, na seva yako ndiyo inaita OpenAI kwa key. Key haitoki kamwe kwenye seva.

Kipengele cha gumzo kinaita OpenAI moja kwa moja kutoka kwenye kivinjari. Hamisha wito huo kwenye njia ya API ya upande wa seva inayosoma OPENAI_API_KEY kutoka kwenye mazingira. Kivinjari kiite njia yetu pekee. Njia ihitaji kuingia.

Angalia mtego mmoja wa kawaida kwenye fremu za mbele: vigezo vyenye kiambishi cha umma — VITE_ kwenye Vite, NEXT_PUBLIC_ kwenye Next.js — vinajengwa kwenye msimbo wa kivinjari kwa makusudi. Key ya siri yenye kiambishi cha aina hiyo iko wazi, hata kama iko "kwenye kigezo cha mazingira".

Hatua ya 3: Thibitisha hakuna kinachovuja

Usiamini kwamba ilifanya kazi — angalia tovuti iliyo hewani:

  1. Fungua programu iliyochapishwa kwenye kivinjari.
  2. Fungua zana za msanidi, kisha kichupo cha Sources au Network.
  3. Tafuta kwenye faili zote herufi za mwanzo za kila key ya siri (kwa mfano sk_ au sk-).
  4. Angalia maombi ya mtandao ambayo programu inatuma. Ombi linaloenda moja kwa moja kutoka kwenye kivinjari kwenda kwa mtoa huduma wa AI anayelipwa ni bendera nyekundu.

Ukipata key ya siri, ihamishe kwenye seva (hatua ya 2) na uizungushe (hatua ya 6), kwa sababu ilikuwa tayari wazi kwa umma.

Hatua ya 4: Zuia kile kila key inachoweza kufanya

Watoa huduma wengi wanakuwezesha kuzuia key:

  • Funguo zenye wigo au zilizozuiwa zinazoweza kufanya tu kile programu yako inachohitaji. Stripe, kwa mfano, inaunga mkono restricted keys zenye ruhusa mahususi.
  • Vizuizi vya domeni au IP kwa funguo zinazolazimika kuwa za umma, kama key za ramani.
  • Funguo tofauti kwa kila programu na kwa kila mazingira, ili uvujaji mmoja usifichue kila kitu, na kufuta moja hakuvunje nyingine.
  • Funguo za majaribio wakati wa kujenga, na funguo halisi kwenye programu iliyochapishwa pekee.

Hatua ya 5: Weka kikomo cha uharibifu

Hata key iliyolindwa vizuri inaweza kutumiwa vibaya kupitia programu yako yenyewe — kwa mfano mtu anapoandika script inayoita kipengele chako cha AI maelfu ya mara.

  • Weka vikomo vya matumizi au arifa kwa kila mtoa huduma anayelipwa.
  • Hitaji kuingia kwa kipengele chochote kinachogharimu pesa kwa kila wito.
  • Ongeza kikomo cha kasi kwa kila mtumiaji. Angalia kikomo cha kasi ni nini.

Ongeza kikomo cha maombi 30 ya AI kwa kila mtumiaji kwa saa kwenye /api/chat. Rudisha ujumbe wazi kikomo kikifikiwa. Kataa maombi kutoka kwa watumiaji wasioingia.

Hatua ya 6: Zungusha funguo zinazovuja

Ikiwa key ya siri inaonekana mahali isipopaswa — ujumbe wa gumzo, commit, picha ya skrini, tiketi ya usaidizi, msimbo wa kivinjari — dhani imeshavuja.

  1. Tengeneza key mpya kwa mtoa huduma.
  2. Sasisha siri kwenye mipangilio ya programu yako.
  3. Pakia tena au chapisha tena ili programu iliyo hewani itumie key mpya.
  4. Futa key ya zamani kwa mtoa huduma.
  5. Kagua kumbukumbu za matumizi za mtoa huduma kwa shughuli usiyoitambua.

Kufuta ujumbe wa gumzo au Git commit hakutoshi. Historia ya Git inahifadhi matoleo ya zamani, na chochote cha umma huenda tayari kimeshanakiliwa.

Makosa ya kawaida

  • Kubandika key kwenye maagizo (prompt). Sasa iko kwenye historia ya gumzo. Tumia fomu ya siri badala yake.
  • Kiambishi cha umma kwenye kigezo cha siri. VITE_OPENAI_API_KEY inapeleka key kwa kila mgeni.
  • Kupeleka faili la .env kwenye Git. Hakikisha iko kwenye .gitignore kabla ya push ya kwanza.
  • Key moja kila mahali. Tumia funguo tofauti kwa majaribio na uzalishaji, na kwa kila programu.
  • Hakuna kikomo cha matumizi. Key iliyovuja au iliyotumiwa vibaya bila kikomo inaweza kuteketeza bili kubwa kabla hujagundua.
  • Kuficha badala ya kuzungusha. Key ikishaonekana wazi, ni key mpya tu inayorekebisha tatizo.
  • Funguo kwenye picha za skrini. Kata au ficha kurasa za mipangilio kabla ya kuzishiriki kwa msaada.

Orodha ya ukaguzi

  • Kila key imehifadhiwa kama siri au kigezo cha mazingira, si kwenye msimbo.
  • Hakuna faili la .env wala key iliyopelekwa kwenye Git.
  • Funguo za siri zinatumika kwenye msimbo wa upande wa seva pekee.
  • Hakuna kigezo cha siri chenye kiambishi cha umma kama VITE_ au NEXT_PUBLIC_.
  • Nimetafuta JavaScript ya tovuti iliyo hewani kwa kiambishi cha kila key na sikupata chochote.
  • Funguo zina wigo au zimezuiwa pale mtoa huduma anaporuhusu.
  • Funguo za majaribio na za halisi ni tofauti.
  • Vipengele vinavyolipiwa vinahitaji kuingia na vina vikomo vya kila mtumiaji.
  • Kila mtoa huduma anayelipwa ana kikomo cha matumizi au arifa.
  • Ninajua jinsi ya kuzungusha kila key, na key yoyote iliyowahi kuwa wazi imezungushwa.

Kulinda funguo kwenye Mythex

Mythex inaweka funguo nje ya msimbo wako na gumzo kwa njia mbili:

  • Kadi ya ombi la siri. Wakala anapohitaji key, anaonyesha kadi kwenye gumzo ambapo unaingiza thamani kwenye sehemu za fomu, si kwenye kisanduku cha ujumbe, na inahifadhiwa kama siri ya mradi. Angalia Siri kwenye gumzo.
  • Mipangilio ya mradi → Siri, au /secrets kwenye gumzo, ili kuongeza au kubadilisha funguo mwenyewe. Angalia Vigezo vya mazingira na siri.

Baada ya kubadilisha siri ya programu iliyochapishwa, chapisha tena ili programu iliyo hewani ichukue mabadiliko. Miradi iliyosafirishwa haiwekwi siri, kwa hiyo ziweke tena mahali popote utakapoendesha msimbo baadaye. Ikiwa key yoyote itawahi kuonekana kwenye gumzo, izungushe kwa mtoa huduma.

Kwa ukaguzi wote wa usalama kabla ya kuzindua, fuata orodha ya ukaguzi wa usalama kwa programu zilizojengwa kwa AI. Ikiwa unaongeza vipengele vya AI, jinsi ya kutumia LLM APIs inashughulikia funguo na gharama kwa undani zaidi.

Maswali

Ni salama kuweka API key kwenye msimbo wa mbele (frontend)?

Ni salama tu ikiwa mtoa huduma aliunda key hiyo iwe ya umma, kama publishable key ya Stripe au key ya ramani iliyozuiwa kwa domeni yako. Key yoyote inayoweza kutumia pesa au kusoma data binafsi lazima ibaki upande wa seva, kwa sababu chochote kilichotumwa kwenye kivinjari kinaweza kusomwa na mtu yeyote.

Nifanye nini nikiwa nimebandika API key kwenye gumzo au kwenye repo ya umma?

Zungusha: tengeneza key mpya kwa mtoa huduma, sasisha siri za programu yako, chapisha tena, kisha futa key ya zamani. Kufuta ujumbe au commit pekee hakutoshi, kwa sababu nakala zinaweza kuwa tayari zimeshakuwepo.

API keys zinapaswa kuhifadhiwa wapi?

Kwenye vigezo vya mazingira au mipangilio ya siri ya mwenyeji wako, ikisomwa na msimbo wa upande wa seva wakati wa kukimbia. Hazipaswi kuandikwa kwenye faili za chanzo, kupelekwa kwenye Git, wala kuonekana kwenye picha za skrini.

Naweza kujuaje kama API key yangu iko wazi kwenye tovuti yangu?

Fungua tovuti yako iliyo hewani, angalia chanzo cha ukurasa na faili za JavaScript kwenye zana za msanidi za kivinjari, kisha tafuta mwanzo wa key. Ikionekana, iko wazi na inapaswa kuhamishiwa kwenye seva na kuzungushwa.

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 简体中文 繁體中文(香港) 繁體中文(台灣)