Udhëzues

Si t'i mbani të sigurta çelësat API në aplikacionin tuaj

Për t'i mbajtur të sigurta çelësat API, ruajini si sekrete ose variabla mjedisi në hostin tuaj, përdorini vetëm në kodin e serverit, dhe mos i ngjitni kurrë në bisedë, skedarë kodi, pamje ekrani apo një repository Git. Jepni çdo çelësi lejen minimale që i duhet, vendosni kufij shpenzimesh te ofruesi, dhe nëse një çelës rrjedh, rrotulloni atë — krijoni një të ri dhe fshini të vjetrin — në vend që ta fshehni vetëm nga vendi ku u shfaq.

Një çelës API është një fjalëkalim për një shërbim. Çelësi juaj OpenAI lejon dikë të shpenzojë paratë tuaja për AI; çelësi juaj sekret i Stripe lejon dikë të bëjë rimbursime; çelësi i ofruesit tuaj të email-it lejon dikë të dërgojë mail në emrin tuaj. Builder-ët e aplikacioneve me AI janë të mirë në lidhjen e këtyre, por jo gjithmonë të kujdesshëm për vendin ku përfundojnë, prandaj ky udhëzues mbulon si t'i mbani të sigurta dhe si ta kontrolloni.

Çelësat publikë kundrejt çelësave sekretë

Jo çdo çelës është sekret. Të dalluarit i ndihmon të mos paniknizoni për atë të gabuar dhe të mos e injoroni atë të duhurin.

LlojiShembujMund të jetë në shfletues?
Çelësa publikë / të publikueshëmÇelësi Stripe pk_…, një çelës harte i kufizuar në domenin tuaj, disa ID-ë analitikePo — është projektuar për këtë
Çelësa sekretëStripe sk_…, çelësat OpenAI dhe Anthropic, çelësat e ofruesit të email-it, fjalëkalimet e bazës së të dhënaveKurrë
Çelësa shërbimi/administratoritÇelësa që anashkalojnë rregullat e aksesit në një bazë të dhënash të hostuarKurrë — trajtojini si më të ndjeshmit

Nëse nuk jeni të sigurt për llojin e një çelësi, kontrolloni dokumentacionin e ofruesit. Kur dyshoni, trajtojeni si sekret.

Hapi 1: Ruajini çelësat si sekrete, jo në kod

Çelësat i takojnë variablave të mjedisit ose cilësimeve të sekreteve të hostit tuaj. Kodi juaj i lexon sipas emrit gjatë ekzekutimit (për shembull process.env.OPENAI_API_KEY), kështu që vlera nuk shfaqet kurrë në skedarët tuaj. Për sfondin, shihni çfarë janë variablat e mjedisit dhe sekretet.

Zhvendos çdo çelës API nga kodi në variabla mjedisi. Listo çdo çelës që gjete, në cilin skedar ishte dhe emrin e variablës që përdore. Mos më shfaq vlerat.

Pastaj kontrolloni që nuk ka mbetur asgjë:

Kërko në gjithë projektin, përfshirë skedarët e konfigurimit dhe çdo skedar .env, për çdo gjë që duket si çelës API ose fjalëkalim. Raporto skedarin dhe rreshtin, jo vlerën.

Hapi 2: Përdorni çelësat sekretë vetëm në server

Kjo është rregulla që ka më shumë rëndësi. Çdo gjë që merr shfletuesi, një vizitor mund ta lexojë — burimi i faqes dhe skedarët JavaScript janë të dukshëm në mjetet për zhvilluesit.

Pra, nëse aplikacioni duhet të thërrasë OpenAI, shfletuesi duhet të thërrasë serverin tuaj, dhe serveri thërret OpenAI me çelësin. Çelësi nuk del kurrë nga serveri.

Veçoria e bisedës thërret OpenAI direkt nga shfletuesi. Zhvendose atë thirrje në një rrugë API të serverit që lexon OPENAI_API_KEY nga mjedisi. Shfletuesi duhet të thërrasë vetëm rrugën tonë. Kërko hyrje për rrugën.

Kini kujdes për një kurth të zakonshëm në kornizat e frontend-it: variablat me prefiks publik — VITE_ në Vite, NEXT_PUBLIC_ në Next.js — futen qëllimisht në kodin e shfletuesit. Një çelës sekret me një prefiks të tillë ekspozohet, edhe pse „është në një variabël mjedisi".

Hapi 3: Testoni që asgjë nuk rrjedh

Mos u besoni që funksionoi — kontrolloni faqen live:

  1. Hapni aplikacionin e publikuar në një shfletues.
  2. Hapni mjetet për zhvilluesit, pastaj skedën Sources ose Network.
  3. Kërkoni nëpër skedarë fillimin e çdo çelësi sekret (për shembull sk_ ose sk-).
  4. Kontrolloni kërkesat e rrjetit që bën aplikacioni. Një kërkesë që shkon direkt nga shfletuesi te një ofrues i paguar AI është alarm.

Nëse gjeni një çelës sekret, zhvendoseni në server (hapi 2) dhe rrotullojeni (hapi 6), sepse ishte tashmë publik.

Hapi 4: Kufizoni çfarë mund të bëjë çdo çelës

Shumë ofrues ju lejojnë të kufizoni një çelës:

  • Çelësa të kufizuar ose me fushë që mund të bëjnë vetëm atë që i duhet aplikacionit. Stripe, për shembull, mbështet çelësa të kufizuar me leje specifike.
  • Kufizime sipas domenit ose IP për çelësa që duhet të jenë publikë, si çelësat e hartave.
  • Çelësa të veçantë për çdo aplikacion dhe mjedis, që një rrjedhje të mos ekspozojë gjithçka, dhe revokimi i njërit të mos prishë të tjerët.
  • Çelësa testi gjatë ndërtimit, dhe çelësa live vetëm në aplikacionin e publikuar.

Hapi 5: Vendosni një tavan dëmi

Madje një çelës i mbrojtur mirë mund të keqpërdoret përmes aplikacionit tuaj — për shembull, dikush që skripton veçorinë tuaj AI mijëra herë.

  • Vendosni kufij ose alarme shpenzimesh te çdo ofrues i paguar.
  • Kërkoni hyrje për çdo veçori që kushton para për thirrje.
  • Shtoni një kufi për përdorues. Shihni çfarë është kufizimi i shpejtësisë.

Shto një kufi prej 30 kërkesash AI për përdorues në orë te /api/chat. Kthe një mesazh të qartë kur arrihet kufiri. Refuzo kërkesat nga përdoruesit që nuk janë të kyçur.

Hapi 6: Rrotulloni çelësat që rrjedhin

Nëse një çelës sekret shfaqet diku ku nuk duhet — një mesazh në bisedë, një commit, një pamje ekrani, një biletë mbështetjeje, kod shfletuesi — supozojeni të komprometuar.

  1. Krijoni një çelës të ri te ofruesi.
  2. Përditësoni sekretin në cilësimet e aplikacionit tuaj.
  3. Vendoseni ose publikojeni përsëri, që aplikacioni live të përdorë çelësin e ri.
  4. Fshini çelësin e vjetër te ofruesi.
  5. Kontrolloni regjistrat e përdorimit të ofruesit për aktivitet që nuk e njihni.

Fshirja e mesazhit në bisedë ose e commit-it në Git nuk mjafton. Historia e Git mban versionet e vjetra, dhe çdo gjë publike mund të jetë kopjuar tashmë.

Gabimet e zakonshme

  • Ngjitja e një çelësi në prompt. Tani është në historinë e bisedës. Përdorni në vend të kësaj një formular sekretesh.
  • Një prefiks publik në një variabël sekrete. VITE_OPENAI_API_KEY i dërgon çelësin çdo vizitori.
  • Commit-imi i një skedari .env. Sigurohuni që është në .gitignore përpara shtytjes së parë.
  • Një çelës për gjithçka. Përdorni çelësa të veçantë për testim dhe live, dhe për çdo aplikacion.
  • Pa kufi shpenzimesh. Një çelës i rrjedhur ose i keqpërdorur pa kufi mund të shpenzojë një faturë të madhe para se ta vini re.
  • Fshehja në vend të rrotullimit. Pasi një çelës është ekspozuar, vetëm një çelës i ri e rregullon.
  • Çelësa në pamje ekrani. Prisni ose vendosni blur faqet e cilësimeve përpara se t'i ndani për ndihmë.

Lista e kontrollit

  • Çdo çelës është ruajtur si sekret ose variabël mjedisi, jo në kod.
  • Asnjë skedar .env ose çelës nuk është commit-uar në Git.
  • Çelësat sekretë përdoren vetëm në kodin e serverit.
  • Asnjë variabël sekrete nuk përdor prefiks publik si VITE_ ose NEXT_PUBLIC_.
  • Kam kërkuar JavaScript-in e faqes live për prefiksin e çdo çelësi dhe nuk gjeta asgjë.
  • Çelësat janë të kufizuar ku ofruesi e lejon.
  • Çelësat e testit dhe të live janë të ndarë.
  • Veçoritë me kosto kërkojnë hyrje dhe kanë kufij për përdorues.
  • Çdo ofrues i paguar ka tavan ose alarm shpenzimesh.
  • Di si të rrotulloj çdo çelës, dhe çdo çelës që ka qenë i ekspozuar është rrotulluar.

Mbajtja e çelësave të sigurt në Mythex

Mythex i mban çelësat jashtë kodit dhe bisedës në dy mënyra:

  • Kartela e kërkesës për sekrete. Kur agjenti ka nevojë për një çelës, shfaq një kartelë në bisedë ku e shkruani vlerën në fusha formulari, jo në kutinë e mesazhit, dhe ruhet si sekret projekti. Shihni Sekretet në bisedë.
  • Cilësimet e projektit → Secrets, ose /secrets në bisedë, për të shtuar ose ndryshuar çelësat vetë. Shihni Variablat e mjedisit dhe sekretet.

Pasi ndryshoni një sekret për një aplikacion të publikuar, publikoni përsëri që aplikacioni live ta marrë. Projektet e eksportuara i lënë jashtë sekretet, prandaj shtojini përsëri kudo ku e ekzekutoni kodin më pas. Nëse një çelës ndonjëherë shfaqet në bisedë, rrotullojeni te ofruesi.

Për pjesën tjetër të rishikimit të sigurisë përpara lançimit, punoni nëpër listën e kontrollit të sigurisë për aplikacionet e ndërtuara me AI. Nëse po shtoni veçori AI, si të përdorni LLM API mbulon çelësat dhe kostot më thellë.

Pyetje

A është e sigurt të vendos një çelës API në kodin e frontend-it?

Vetëm nëse ofruesi e ka projektuar atë çelës të jetë publik, si çelësi i publikueshëm i Stripe ose një çelës hartash i kufizuar në domenin tuaj. Çdo çelës që mund të shpenzojë para ose të lexojë të dhëna private duhet të qëndrojë në server, sepse çdo gjë që i dërgohet shfletuesit mund ta lexojë këdo.

Çfarë të bëj nëse kam ngjitur një çelës API në një bisedë ose në një repo publik?

Rrotulloni atë: krijoni një çelës të ri te ofruesi, përditësoni sekretet e aplikacionit, publikoni përsëri, pastaj fshini çelësin e vjetër. Fshirja e mesazhit ose commit-it nuk mjafton, sepse mund të ekzistojnë kopje.

Ku duhet të ruhen çelësat API?

Në variablat e mjedisit ose cilësimet e sekreteve të hostit tuaj, të lexuara nga kodi i serverit gjatë ekzekutimit. Nuk duhet të shkruhen në skedarë burimi, të commit-ohen në Git, ose të përfshihen në pamje ekrani.

Si mund të shoh nëse çelësi im API është i ekspozuar në faqen time?

Hapni faqen tuaj live, shikoni burimin e faqes dhe skedarët JavaScript në mjetet për zhvilluesit të shfletuesit, dhe kërkoni fillimin e çelësit. Nëse shfaqet, është i ekspozuar dhe duhet zhvendosur në server dhe rrotulluar.

Mythex · Pricing · Ndërtoni çdo gjë me AI · Shablone faqesh dhe aplikacionesh · Mythex në krahasim · Fjalori i ndërtimit të aplikacioneve me AI · Mjete falas për ndërtimin e aplikacioneve me 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 Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)