Hvernig þú heldur API-lyklum öruggum í appinu þínu
Til að halda API-lyklum öruggum skaltu geyma þá sem leyndarmál eða umhverfisbreytur hjá hýsingaraðilanum, nota þá aðeins í kóða á netþjóni og aldrei líma þá í spjall, kóðaskrár, skjámyndir eða Git-geymslu. Gefðu hverjum lykli lágmarksheimildirnar sem hann þarf, settu eyðslumörk hjá þjónustuaðilanum og ef lykill lekur skaltu skipta um hann — búa til nýjan og eyða þeim gamla — í stað þess að fela bara þar sem hann birtist.
API-lykill er lykilorð fyrir þjónustu. OpenAI-lykillinn þinn gerir einhverjum kleift að eyða peningunum þínum í AI; Stripe-leyndarlykillinn þinn gerir einhverjum kleift að gefa út endurgreiðslur; póstþjónustulykillinn þinn gerir einhverjum kleift að senda póst í þínu nafni. AI-smiðir eru góðir í að tengja þessa lykla en eru ekki alltaf varkárir um hvar þeir enda, svo þessi leiðbeining fjallar um hvernig þú heldur þeim öruggum og hvernig þú athugar það.
Opinberir lyklar og leynilyklar
Ekki er hver lykill leyndur. Að vita muninn kemur í veg fyrir að þú örvist út af röngum lykli og hunsir þann rétta.
| Tegund | Dæmi | Má hann vera í vafranum? |
|---|---|---|
| Birtanlegir/opinberir lyklar | Stripe pk_…-lykill, kortalykill sem er takmarkaður við lénið þitt, sumir greiningarauðkenni | Já — hannaðir fyrir það |
| Leynilyklar | Stripe sk_…, OpenAI- og Anthropic-lyklar, lyklar póstþjónustu, lykilorð gagnagrunns | Aldrei |
| Þjónustu- og stjórnlyklar | Lyklar sem fara framhjá aðgangsreglum á hýstum gagnagrunni | Aldrei — meðhöndlaðu sem þá viðkvæmustu |
Ef þú ert ekki viss um hvaða tegund lykill er, athugaðu skjöl þjónustuaðilans. Ef vafi leikur á, meðhöndlaðu hann sem leyndan.
Skref 1: Geymdu lykla sem leyndarmál, ekki í kóða
Lyklar eiga heima í umhverfisbreytum eða leyndarmálsstillingum hýsingaraðilans þíns. Kóðinn þinn les þá eftir nafni við keyrslu (til dæmis process.env.OPENAI_API_KEY), svo gildið birtist aldrei í skrám þínum. Til bakgrunns, sjá hvað umhverfisbreytur og leyndarmál eru.
Færðu alla API-lykla úr kóðanum í umhverfisbreytur. Listaðu hvern lykil sem þú fannst, í hvaða skrá hann var og hvaða breytuheiti þú notaðir. Ekki sýna mér gildin.
Athugaðu síðan að ekkert sé eftir:
Leitaðu í öllu verkefninu, þar með talið stillingarskrám og öllum .env-skrám, að öllu sem lítur út eins og API-lykill eða lykilorð. Segðu mér skrána og línuna, ekki gildið.
Skref 2: Notaðu leynilykla aðeins á netþjóni
Þetta er reglan sem skiptir mestu máli. Allt sem vafrinn fær getur gestur lesið — síðukóðinn og JavaScript-skrárnar eru sýnilegar í þróunarverkfærum.
Þannig að ef appið þarf að kalla á OpenAI ætti vafrinn að kalla á þinn netþjón, og netþjónninn kallar á OpenAI með lyklinum. Lykillinn fer aldrei af netþjóninum.
Spjallaðgerðin kallar á OpenAI beint úr vafranum. Færðu það kall yfir á API-leið á netþjóni sem les OPENAI_API_KEY úr umhverfinu. Vafrinn ætti aðeins að kalla á leiðina okkar. Krefjist innskráningar á leiðina.
Farðu varlega við eina algenga gildru í framendaumgjörðum: breytur með opinberu forskeyti — VITE_ í Vite, NEXT_PUBLIC_ í Next.js — eru settar inn í kóða vafrans af ásettu ráði. Leynilykill með einu af þessum forskeytum er afhjúpaður, jafnvel þótt hann sé „í umhverfisbreytu“.
Skref 3: Prófaðu að ekkert leki
Treystu ekki því að þetta hafi virkað — athugaðu birta síðuna:
- Opnaðu birta appið í vafra.
- Opnaðu þróunarverkfærin og flipann Sources eða Network.
- Leitaðu í skrám að fyrstu stöfunum í hverjum leynilykli (til dæmis
sk_eðask-). - Athugaðu netbeiðnirnar sem appið sendir. Beiðni sem fer beint úr vafranum til greidds AI-þjónustuaðila er rauður fáni.
Ef þú finnur leynilykil skaltu færa hann á netþjóninn (skref 2) og skipta um hann (skref 6), því hann var þegar opinber.
Skref 4: Takmarkaðu það sem hver lykill getur gert
Margir þjónustuaðilar leyfa þér að takmarka lykil:
- Afmarkaða eða takmarkaða lykla sem geta aðeins gert það sem appið þarf. Stripe styður til dæmis takmarkaða lykla með tilteknum heimildum.
- Takmarkanir á léni eða IP-tölu fyrir lykla sem verða að vera opinberir, eins og kortalykla.
- Aðskildir lyklar fyrir hvert app og hvert umhverfi, svo einn leki afhjúpi ekki allt, og afturköllun á einum rjúfi ekki hina.
- Prófunarlyklar meðan þú smíðar, og raunlyklar aðeins í birta appinu.
Skref 5: Settu þak á skaðann
Jafnvel vel varinn lykill getur verið misnotaður í gegnum þitt eigið app — til dæmis ef einhver keyrir AI-eiginleikann þinn þúsundum sinnum með skriftu.
- Settu eyðslumörk eða tilkynningar hjá hverjum greiddum þjónustuaðila.
- Krefstu innskráningar fyrir alla eiginleika sem kosta peninga í hverju kalli.
- Bættu við takmörkun á hvern notanda. Sjá hvað hraðatakmörkun er.
Settu mörk við 30 AI-beiðnir á hvern notanda á klukkustund á /api/chat. Skilaðu skýrum skilaboðum þegar mörkum er náð. Hafnaðu beiðnum frá notendum sem eru ekki innskráðir.
Skref 6: Skiptu um lykla sem leka
Af lykli sem birtist þar sem hann átti ekki að vera — spjallskilaboð, commit, skjámynd, þjónustubeiðni, kóði í vafra — skaltu gera ráð fyrir að hann sé í hættu.
- Búðu til nýjan lykil hjá þjónustuaðilanum.
- Uppfærðu leyndarmálið í stillingum appsins.
- Keyrðu upp aftur eða birtu aftur svo birta appið noti nýja lykilinn.
- Eyddu gamla lyklinum hjá þjónustuaðilanum.
- Athugaðu notkunarskrár þjónustuaðilans fyrir virkni sem þú þekkir ekki.
Að eyða spjallskilaboðinu eða Git-commit-inu nægir ekki. Git-saga geymir gamlar útgáfur og allt sem er opinbert kann þegar að hafa verið afritað.
Algeng mistök
- Að líma lykli í fyrirmælin. Hann er þá kominn í spjallsöguna. Notaðu eyðublað fyrir leyndarmál í staðinn.
- Opinbert forskeyti á leynibreytu.
VITE_OPENAI_API_KEYsendir lykilinn til allra gesta. - Að setja .env-skrá í commit. Gakktu úr skugga um að hún sé í
.gitignoreáður en fyrsta sendingin fer fram. - Einn lykill alls staðar. Notaðu aðskilda lykla fyrir prófun og raun, og fyrir hvert app.
- Engin eyðslumörk. Lykill sem lekur eða er misnotaður án þaks getur keyrt upp stóran reikning áður en þú tekur eftir því.
- Að fela í stað þess að skipta út. Þegar lykill hefur verið afhjúpaður lagar aðeins nýr lykill málið.
- Lyklar á skjámyndum. Klipptu eða gerðu óskýrar stillingasíður áður en þú deilir þeim til að fá hjálp.
Gátlisti
- Hver lykill er geymdur sem leyndarmál eða umhverfisbreyta, ekki í kóða.
- Engin .env-skrá eða lykill er í Git.
- Leynilyklar eru aðeins notaðir í kóða á netþjóni.
- Engin leynibreyta notar opinbert forskeyti eins og
VITE_eðaNEXT_PUBLIC_. - Ég leitaði í JavaScript birta vefsins að forskeyti hvers lykils og fann ekkert.
- Lyklar eru afmarkaðir eða takmarkaðir þar sem þjónustuaðilinn leyfir það.
- Prófunar- og raunlyklar eru aðskildir.
- Greiddir eiginleikar krefjast innskráningar og takmarka hvern notanda.
- Sérhver greiddur þjónustuaðili er með eyðsluþak eða tilkynningu.
- Ég veit hvernig á að skipta um hvern lykil, og allir lyklar sem hafa verið afhjúpaðir hafa verið skiptir út.
Að halda lyklum öruggum á Mythex
Mythex heldur lyklum út úr kóðanum og spjallinu á tvo vegu:
- Beiðnaspjald fyrir leyndarmál. Þegar agentinn þarf lykil sýnir hann spjald í spjallinu þar sem þú slærð gildið inn í reiti, ekki í skilaboðareitinn, og það er geymt sem leyndarmál verkefnisins. Sjá Leyndarmál í spjalli.
- Stillingar verkefnisins → Leyndarmál, eða
/secretsí spjallinu, til að bæta við eða breyta lyklum sjálfur. Sjá Umhverfisbreytur og leyndarmál.
Eftir að þú breytir leyndarmáli í birtu appi skaltu birta aftur svo birta appið nái í það. Útfluttar verkefnaskrár innihalda ekki leyndarmál, svo bættu þeim aftur við hvar sem þú keyrir kóðann næst. Ef lykill birtist einhvern tímann í spjallinu skaltu skipta um hann hjá þjónustuaðilanum.
Fyrir restina af öryggisyfirferðinni fyrir birtingu, farðu yfir öryggisgátlistann fyrir AI-smíðuð öpp. Ef þú bætir við AI-eiginleikum fjallar hvernig þú notar LLM API um lykla og kostnað dýpra.
Spurningar
Er óhætt að setja API-lykil í framendakóða?
Aðeins ef þjónustuaðilinn hannaði þann lykil til að vera opinberan, eins og birtanlegan lykil Stripe eða kortalykil sem er takmarkaður við lénið þitt. Allir lyklar sem geta eytt peningum eða lesið einkagögn verða að vera á netþjóninum, því allt sem sent er í vafrann getur hver sem er lesið.
Hvað á ég að gera ef ég límdi API-lykil í spjall eða opinbera geymslu?
Skiptu honum út: búðu til nýjan lykil hjá þjónustuaðilanum, uppfærðu leyndarmál appsins, birtu aftur og eyddu síðan gamla lyklinum. Að eyða skilaboðunum eða commit-inu nægir ekki, því afrit gætu þegar verið til.
Hvar á að geyma API-lykla?
Í umhverfisbreytum eða leyndarmálsstillingum hýsingaraðilans þíns, sem kóði á netþjóni les við keyrslu. Þeir eiga ekki heima í kóðaskrám, í Git-commit-um eða á skjámyndum.
Hvernig veit ég hvort API-lykillinn minn sé afhjúpaður á vefsíðunni minni?
Opnaðu birta síðuna, skoðaðu síðukóðann og JavaScript-skrárnar í þróunarverkfærum vafrans og leitaðu að upphafi lykilsins. Ef hann birtist er hann afhjúpaður og ætti að færa hann á netþjóninn og skipta um hann.