Орта айнымалылары мен құпиялар дегеніміз не? Қарапайым нұсқаулық
Орта айнымалысы — бұл атауы бар баптау, мысалы DATABASE_URL немесе STRIPE_SECRET_KEY. Ол қолданба іске қосылған кезде оған беріледі, кодқа жазылмайды. Құпия — мәні жеке сақталуы тиіс орта айнымалысы: API кілті, құпиясөз немесе қолтаңба кілті. Бұл мәндерді кодтан тыс ұстау арқылы қолданбаны өңдемей-ақ өзгертуге, сынақ пен нақты клиенттер үшін түрлі мәндерді пайдалануға және кодты бөліскен немесе жариялаған кезде оның ашылып қалуының алдын алуға болады.
Неліктен бұл AI көмегімен құрастырғанда маңызды
Қолданба басқа сервиспен пайдалы жұмыс істей бастаған сәтте, мысалы төлем қабылдаса, электрондық хат жіберсе немесе AI моделін шақырса, оған кілт қажет болады. AI құрастырушылары бұл кілттерді жиі сұрайды, ал кілт қай жерде тұрғаны қолданбаның қауіпсіздігін анықтайды.
AI арқылы құрастырылған қолданбаларда екі қате жиі кездеседі:
- Кілт чатқа немесе кодқа қойылады. Сонда ол чат тарихында, жоба файлдарында және кез келген экспортта немесе репозиторийде қалады. Оны көрген адам сіздің аккаунтыңызды пайдалана алады.
- Кілт браузерде пайдаланылады. Stripe немесе OpenAI-ды шақыратын код бетте жұмыс істесе, кілт әрбір келушіге жіберіледі. Адамдар мұны тексереді, ал автоматты сканерлер ашық кілттерді үнемі іздейді.
Орта айнымалыларын түсіну осы екі қателіктің екеуін де байқауға және түзетуді сұрауға көмектеседі.
Күнделікті ұқсастық: қонақ үй сейфі
Қолданбаңыздың коды — бөлме сияқты. Қонақтар (және тазалаушылар, және кілт карточкасын берген кез келген адам) сол жерден өтеді. Паспортыңызды үстелге қалдырмайсыз.
Орта айнымалылары — бөлмедегі сейф. Бөлмеде сейфтің бар екенін және қажет болғанда оны қалай ашуға болатынын біледі, бірақ паспорт ашық жатпайды. Ал егер бөлме ауыстырылса, мысалы сынақ орнатымнан нақты сайтқа көшсеңіз, интерьерді өзгертпей-ақ сол бөлменің сейфіне басқа паспорт саласыз.
Ол қалай жұмыс істейді
Сіздің кодыңыз мәнді емес, атауды сілтейді. Серверде JavaScript-те бұл process.env.STRIPE_SECRET_KEY түрінде көрінеді. Қолданба іске қосылғанда, оны жұрттық платформа атаудың мәнін толтырады. Мәнді платформа параметрлерінде өзгертіп, қайта іске қосқанда немесе қайта жариялағанда, қолданба жаңасын пайдаланады — кодты өзгертудің қажеті жоқ.
Мәндердің қайдан келетіні қолданбаның қай жерде жұмыс істеуіне байланысты:
| Қай жерде жұмыс істейді | Мәндер қайда сақталады |
|---|---|
| Әзірлеушінің ноутбугында | Әдетте .env деп аталатын жергілікті файл, оны git-ке ешқашан қоспаңыз |
| AI құрастырушысының алдын ала қарауында | Жобаның құпиялар немесе параметрлер панелі |
| Хостинг платформасында | Сол платформаның орта айнымалылары параметрлері |
| GitHub Actions немесе басқа автоматтандыруда | Сервистің өзінің шифрланған құпиялар қоймасы |
Ашық және құпия айнымалылар
Барлық орта айнымалылары құпия бола бермейді. Оларды екі топқа бөлу пайдалы:
| Түрі | Мысалдар | Браузер оны көре ала ма? |
|---|---|---|
| Ашық баптау | Сайт атауы, ашық аналитика ID-і, Stripe publishable кілті, функция қосқыштары | Иә, бұл қалыпты |
| Құпиялар | Stripe secret кілті, OpenAI немесе Anthropic API кілті, дерекқорға қосылу жолы, электрондық пошта провайдерінің кілті, вебхук қолтаңба құпиясы | Ешқашан |
Веб-фреймворктер бұл бөлуді анық көрсетеді. Vite-та тек VITE_ префиксі бар айнымалылар браузер кодына кіреді; Next.js-те префикс — NEXT_PUBLIC_. Бұл қауіпсіздік функциясы: осы префикстері бар нәрсе әрбір келушінің жүктейтін файлдарына түседі, сондықтан құпияға ешқашан мұндай префикс берілмеуі керек.
Жұмыс мысалы: AI түйіндеме батырмасы
Сізге AI моделін шақыратын «Осы жазбаны қысқартып беру» батырмасы керек.
Қауіпті нұсқа: браузерде жұмыс істейтін батырма кодында AI провайдеріне тікелей, API кілті жазылған күйде сұрау жібереді. Ол алдын ала қарауда жұмыс істейді. Бірақ бұл кез келген адамның браузердің әзірлеуші құралдарын ашып, кілтті көшіріп, сіздің аккаунтыңыздан шығын жасауына мүмкіндік береді.
Қауіпсіз нұсқа:
- AI провайдерінде кілтті жасап, оны жоба параметрлерінде
OPENAI_API_KEY(немесе осыған ұқсас) атауымен құпия ретінде сақтайсыз. - Бэкендте
POST /api/summariseмаршруты болады, олprocess.env.OPENAI_API_KEYмәнін оқиды, пайдаланушының кірген-кірмегенін тексереді және провайдерді шақырады. - Батырма провайдерді емес, сіздің маршрутыңызды шақырады. Браузер кілтті ешқашан көрмейді.
- Жарияланған қолданбаның параметрлеріне дәл сол құпияны қосып, қайта жариялайсыз, сонда тірі сайтта да ол болады.
Бұл үлгі — браузер сіздің серверге сұрау жібереді, сервер кілтті ұстап, қызметті өзі шақырады — төлемдерге, электрондық поштаға, карталарға және басқа ақылы API үшін де қолданылады. LLM API-ларын пайдалану нұсқаулығында AI жағдайы толығырақ түсіндірілген.
Негізгі терминдер
.envфайлы: жергілікті әзірлеуде қолданылатынNAME=valueжолдарынан тұратын мәтін файлы. Ол git-ке түспеуі үшін.gitignoreішіне жазыңыз..env.example: атаулары бар, бірақ нақты мәндері жоқ көшірме. Басқалар қандай айнымалыларды орнату керек екенін білуі үшін оны коммит жасайсыз.- Ауыстыру (rotate): құпияны жаңасына ауыстыру және ескісін қайтарып алу.
- Шектеу / рұқсаттар: көптеген провайдерлер тек белгілі бір әрекеттерге рұқсат беретін кілттер жасауға мүмкіндік береді. Тек хат жіберуге рұқсаты бар кілт барлық нәрсеге рұқсаты бар кілттен қауіпсіз.
- Сынақ және тірі кілттер: Stripe сияқты провайдерлер сынақ үшін және нақты ақша үшін бөлек кілттер береді. Іске қосқанға дейін сынақ кілттерін пайдаланыңыз.
- Қолтаңба құпиясы: хабарлама, мысалы вебхук, шынымен жіберушіден келгенін тексеру үшін қолданылатын құпия.
Жиі кездесетін қателер мен түсініспеушіліктер
- «Репозиторий жабық, сондықтан ішінде кілттер болса да қауіпсіз.» Жабық репозиторийлер де бөлісіледі, көшіріледі, экспортталады және ноутбуктерге клондалады. Кілттің онда орны жоқ. Жобаны GitHub-қа қоссаңыз, ішінде
.envфайлы жоқ екеніне көз жеткізіңіз. - «Өшірдім, демек жоқ.» Git тарихты сақтайды, ал чат журналдарында хабарламалар қалады. Кілт бір рет ашылып қалса, оны ауыстырыңыз.
- Құпияға ашық префикс қою.
VITE_OPENAI_KEYкілтті браузер жинағына салады. - Қайта жариялауды ұмыту. Параметрлерде айнымалыны өзгерту әдетте тек қолданба қайта іске қосылғанда немесе қайта жарияланғанда күшіне енеді.
- Бәрі үшін бір кілт. Сынақ пен тірі үшін және әр қолданба үшін бөлек кілттер бір кілтті басқаларын бұзбай қайтарып алуға мүмкіндік береді.
- Шығын шегі жоқ. Ақылы API-лар үшін кілт ашылып қалған жағдайға дайындықпен провайдердің бақылау тақтасында бюджет немесе шек қойыңыз.
AI құрастырушыңызға не сұрау керек
- «Stripe құпия кілтін
STRIPE_SECRET_KEYдеп аталатын орта айнымалысынан оқы. Оны тек серверде пайдалан.» - «Ешбір құпия клиенттік кодта пайдаланылмасын және оған
VITE_/NEXT_PUBLIC_префиксі берілмесін.» - «Қолданбаға қажет барлық айнымалылардың атауларын мәнсіз
.env.exampleфайлында тізіп жаз, ал.envgit-ке елемейтін болсын.» - «Құрастырылған фронтенд файлдарын API кілтіне ұқсайтын жолдар үшін тексер.»
Жариялауға дейін тексеретін басқа да нәрселермен қатар құпияларды қамтитын AI көмегімен құрастырылған қолданбаларға арналған қауіпсіздік тізімі нұсқаулығын оқыңыз.
Mythex-та құпиялар
Mythex-та құпиялар — жоба орта айнымалылары, олар хабарлама жіберуге арналған алдын ала қарау ортасына да, жарияланған қолданбаға да енгізіледі. Оларды жоба параметрлері → Secrets бөлімінде немесе чатта /secrets командасымен қосасыз. Агенттің кілтке қажеті болғанда, ол чатта құпиялар карточкасын көрсетеді, сонда мән хабарлама тарихына емес, форма өрісіне түседі. Тірі қолданбаның құпиясын өзгерткен кезде, деплой оны алуы үшін қайта жариялаңыз. Жоба экспорттарында құпиялар қосылмайды, ал импортталған .env файлдары тазаланады, сондықтан оларды параметрлерде қайта қосасыз. Қосымша мәліметті құжаттарда орта айнымалылары және құпиялар және чаттағы құпиялар бөлімдерінен табасыз.
Сұрақтар
Орта айнымалысы дегеніміз не?
Орта айнымалысы — STRIPE_SECRET_KEY немесе DATABASE_URL сияқты атауы бар баптау. Ол бағдарлама кодына жазылмай, оны іске қосу кезінде беріледі. Сол код әзірлеуде және жарияланғанда әртүрлі мәндермен жұмыс істей алады.
Орта айнымалысы мен құпия арасындағы айырмашылық неде?
Құпия — мәні жеке сақталуы тиіс орта айнымалысы, мысалы API кілті, дерекқор құпиясөзі немесе вебхук қолтаңба құпиясы. Басқа орта айнымалылары, мысалы сайт атауы немесе функция қосқышы, ашық болуы мүмкін.
API кілттерін фронтендке салу қауіпсіз бе?
Жоқ. Фронтенд кодындағы кез келген нәрсе әрбір келушінің браузеріне жүктеледі және оқылуы мүмкін. Құпия кілттерді тек серверде пайдалану керек, ал браузер сіздің серверіңізге сұрау жібереді, сервер болса провайдерге өзі барады.
API кілтім ашылып қалса, не істеу керек?
Бірден провайдерде кілтті қайтарып алыңыз немесе ауыстырыңыз, жаңасын жасаңыз, оны қолданбаңыз құпияларды сақтайтын жерде жаңартыңыз және қайта жариялаңыз. Кілтті кодтан немесе чат тарихынан өшіру жеткіліксіз, себебі көшірмелері әлдеқашан бар болуы мүмкін.