तुमच्या ॲपमधील API की सुरक्षित कशा ठेवायच्या
API की सुरक्षित ठेवण्यासाठी, त्या तुमच्या होस्टवर सिक्रेट्स किंवा पर्यावरण व्हेरिएबल्स म्हणून साठवा, फक्त सर्व्हर-साइड कोडमध्ये वापरा, आणि कधीही चॅट, कोड फाइल्स, स्क्रीनशॉट्स किंवा Git रिपॉझिटरीमध्ये पेस्ट करू नका. प्रत्येक की ला आवश्यक असलेली किमान परवानगी द्या, प्रदात्याकडे खर्च मर्यादा सेट करा, आणि कोणतीही की लीक झाल्यास ती बदला — नवी तयार करा आणि जुनी हटवा — ती कुठे दिसली ते फक्त लपवू नका.
API की ही एका सेवेसाठी पासवर्ड असते. तुमची OpenAI की कोणालातरी तुमचे पैसे AI वर खर्च करू देते; तुमची Stripe सिक्रेट की कोणालातरी परतावे देऊ देते; तुमची ईमेल प्रदात्याची की कोणालातरी तुमच्या नावाने मेल पाठवू देते. AI ॲप बिल्डर्स त्या जोडण्यात चांगले असतात, पण त्या कुठे पोहोचतात याची नेहमी काळजी घेतातच असे नाही, म्हणून हे मार्गदर्शक त्या सुरक्षित कशा ठेवायच्या आणि कसे तपासायचे ते सांगते.
सार्वजनिक की विरुद्ध सिक्रेट की
प्रत्येक की सिक्रेट नसते. फरक समजून घेतल्यास चुकीच्या कीबद्दल घाबरण्यापासून वाचता येते आणि योग्य कीकडे दुर्लक्ष टाळता येते.
| प्रकार | उदाहरणे | ब्राउझरमध्ये असू शकते का? |
|---|---|---|
| Publishable / सार्वजनिक की | Stripe pk_… की, फक्त तुमच्या डोमेनसाठी मर्यादित नकाशाची की, काही ॲनालिटिक्स ID | होय — त्यासाठीच डिझाइन केलेली |
| सिक्रेट की | Stripe sk_…, OpenAI आणि Anthropic की, ईमेल प्रदात्याच्या की, डेटाबेस पासवर्ड | कधीच नाही |
| सर्व्हिस/ॲडमिन की | होस्टेड डेटाबेसवरील प्रवेश नियम बायपास करणाऱ्या की | कधीच नाही — सर्वात संवेदनशील मानावी |
एखादी की कोणत्या प्रकारची आहे याबद्दल खात्री नसेल, तर प्रदात्याचे दस्तऐवजीकरण तपासा. शंका असल्यास, ती सिक्रेट मानून वागवा.
पायरी 1: की कोडबाहेर सिक्रेट्स म्हणून साठवा
की तुमच्या होस्टच्या पर्यावरण व्हेरिएबल्स किंवा सिक्रेट्स सेटिंग्जमध्ये राहतात. तुमचा कोड त्यांना रनटाइमला नावाने वाचतो (उदाहरणार्थ process.env.OPENAI_API_KEY), त्यामुळे मूल्य कधीच तुमच्या फाइल्समध्ये दिसत नाही. पार्श्वभूमीसाठी, पर्यावरण व्हेरिएबल्स आणि सिक्रेट्स म्हणजे काय पहा.
प्रत्येक API की कोडमधून पर्यावरण व्हेरिएबल्समध्ये हलवा. तुम्हाला सापडलेली प्रत्येक की, ती कोणत्या फाइलमध्ये होती, आणि तुम्ही वापरलेले व्हेरिएबल नाव यांची यादी करा. मूल्ये दाखवू नका.
नंतर काही उरले नाही याची खात्री करा:
संपूर्ण प्रोजेक्ट शोधा, कॉन्फिग फाइल्स आणि कोणत्याही .env फाइल्ससह, API कीसारखे दिसणारे काहीही शोधा. फाइल आणि ओळ नोंदवा, मूल्य नाही.
पायरी 2: सिक्रेट की फक्त सर्व्हरवर वापरा
हा सर्वात महत्त्वाचा नियम आहे. ब्राउझरला मिळणारे काहीही भेट देणारा वाचू शकतो — पेज सोर्स आणि JavaScript फाइल्स डेव्हलपर टूल्समध्ये दिसतात.
त्यामुळे ॲपला OpenAI कॉल करायचा असेल, तर ब्राउझरने तुमच्या सर्व्हरला कॉल करावा, आणि तुमच्या सर्व्हरने की वापरून OpenAI ला कॉल करावा. की कधीही सर्व्हर सोडत नाही.
चॅट फीचर ब्राउझरमधून थेट OpenAI ला कॉल करते. तो कॉल सर्व्हर API राउटमध्ये हलवा, जो पर्यावरणातून OPENAI_API_KEY वाचतो. ब्राउझरने फक्त आमच्या राउटला कॉल करावा. राउटसाठी लॉग इन आवश्यक करा.
फ्रंटएंड फ्रेमवर्क्समधील एका सामान्य सापळ्याकडे लक्ष द्या: सार्वजनिक प्रीफिक्स असलेले व्हेरिएबल्स — Vite मध्ये VITE_, Next.js मध्ये NEXT_PUBLIC_ — मुद्दाम ब्राउझर कोडमध्ये बिल्ड केले जातात. सिक्रेट की अशा प्रीफिक्ससह असेल, तर ती उघड होते, जरी ती "पर्यावरण व्हेरिएबलमध्ये" असली तरी.
पायरी 3: काहीही लीक होत नाही याची चाचणी घ्या
ते काम केले आहे असे गृहीत धरू नका — लाइव्ह साइट तपासा:
- ब्राउझरमध्ये प्रकाशित ॲप उघडा.
- डेव्हलपर टूल्स उघडा, मग Sources किंवा Network टॅब.
- प्रत्येक सिक्रेट कीच्या सुरुवातीच्या अक्षरांसाठी फाइल्समध्ये शोधा (उदाहरणार्थ
sk_किंवाsk-). - ॲप करत असलेल्या नेटवर्क रिक्वेस्ट्स तपासा. ब्राउझरवरून थेट पेड AI प्रदात्याकडे जाणारी रिक्वेस्ट धोक्याची खूण आहे.
सिक्रेट की सापडली, तर ती सर्व्हरवर हलवा (पायरी 2) आणि बदला (पायरी 6), कारण ती आधीच सार्वजनिक झाली होती.
पायरी 4: प्रत्येक कीला काय करता येईल ते मर्यादित करा
अनेक प्रदाते की मर्यादित करू देतात:
- स्कोप्ड किंवा मर्यादित की ज्या फक्त तुमच्या ॲपला लागणारे करू शकतात. उदाहरणार्थ, Stripe विशिष्ट परवानग्यांसह मर्यादित की सपोर्ट करते.
- डोमेन किंवा IP मर्यादा ज्या की सार्वजनिक असणे आवश्यक आहे, जसे नकाशाच्या की.
- प्रत्येक ॲप आणि वातावरणासाठी वेगळ्या की, म्हणजे एक लीक सर्व काही उघड करत नाही, आणि एक रद्द केल्याने इतर तुटत नाहीत.
- बांधताना चाचणी की, आणि लाइव्ह की फक्त प्रकाशित ॲपमध्ये.
पायरी 5: नुकसानीला मर्यादा घाला
उत्तम संरक्षित की देखील तुमच्या स्वतःच्या ॲपद्वारे गैरवापरली जाऊ शकते — उदाहरणार्थ, कोणीतरी तुमचे AI फीचर हजारो वेळा स्क्रिप्ट करत असणे.
- प्रत्येक पेड प्रदात्याकडे खर्च मर्यादा किंवा अलर्ट्स सेट करा.
- प्रति कॉल पैसे लागणाऱ्या कोणत्याही फीचरसाठी लॉग इन आवश्यक करा.
- एक प्रति-वापरकर्ता रेट लिमिट जोडा. रेट लिमिटिंग म्हणजे काय पहा.
/api/chat ला प्रति वापरकर्ता प्रति तास 30 AI रिक्वेस्ट्सची मर्यादा जोडा. मर्यादा गाठल्यावर स्पष्ट संदेश परत करा. लॉग इन नसलेल्या वापरकर्त्यांच्या रिक्वेस्ट्स नाकारा.
पायरी 6: लीक झालेल्या की बदला
सिक्रेट की जिथे दिसू नये तिथे दिसली — चॅट संदेश, कमिट, स्क्रीनशॉट, सपोर्ट तिकीट, ब्राउझर कोड — तर ती धोक्यात आहे असे गृहीत धरा.
- प्रदात्याकडे नवी की तयार करा.
- तुमच्या ॲपच्या सेटिंग्जमध्ये सिक्रेट अपडेट करा.
- लाइव्ह ॲप नवी की वापरेल यासाठी पुन्हा डिप्लॉय किंवा पुन्हा प्रकाशित करा.
- प्रदात्याकडे जुनी की हटवा.
- तुम्ही ओळखत नसलेल्या कोणत्याही क्रियाकलापासाठी प्रदात्याचे वापर लॉग तपासा.
चॅट संदेश किंवा Git कमिट हटवणे पुरेसे नाही. Git इतिहास जुन्या आवृत्त्या ठेवतो, आणि सार्वजनिक असलेले काहीही आधीच कॉपी झाले असेल.
सामान्य चुका
- प्रॉम्प्टमध्ये की पेस्ट करणे. ती आता चॅट इतिहासात आहे. त्याऐवजी सिक्रेट्स फॉर्म वापरा.
- सिक्रेट व्हेरिएबलला सार्वजनिक प्रीफिक्स.
VITE_OPENAI_API_KEYही की प्रत्येक अभ्यागतापर्यंत पोहोचवते. - .env फाइल कमिट करणे. पहिला पुश करण्यापूर्वी ती
.gitignoreमध्ये असल्याची खात्री करा. - सर्वत्र एकच की. चाचणी आणि लाइव्हसाठी, आणि प्रत्येक ॲपसाठी वेगळ्या की वापरा.
- खर्च मर्यादा नसणे. लीक झालेली किंवा गैरवापरली जाणारी की मर्यादेशिवाय तुम्ही लक्षात घेण्यापूर्वीच मोठे बिल जमा करू शकते.
- लपवणे, बदलण्याऐवजी. एकदा की उघड झाली की, फक्त नवीच ती दुरुस्त करू शकते.
- स्क्रीनशॉट्समधील की. मदतीसाठी शेअर करण्यापूर्वी सेटिंग्ज पेजेस क्रॉप करा किंवा धूसर करा.
चेकलिस्ट
- प्रत्येक की सिक्रेट किंवा पर्यावरण व्हेरिएबल म्हणून साठवली आहे, कोडमध्ये नाही.
- कोणतीही .env फाइल किंवा की Git मध्ये कमिट केलेली नाही.
- सिक्रेट की फक्त सर्व्हर-साइड कोडमध्ये वापरल्या जातात.
- कोणत्याही सिक्रेट व्हेरिएबलला
VITE_किंवाNEXT_PUBLIC_सारखा सार्वजनिक प्रीफिक्स नाही. - मी लाइव्ह साइटच्या JavaScript मध्ये प्रत्येक कीचा प्रीफिक्स शोधला आणि काहीही सापडले नाही.
- प्रदात्याने परवानगी दिली तिथे की स्कोप्ड किंवा मर्यादित आहेत.
- चाचणी आणि लाइव्ह की वेगळ्या आहेत.
- पैसे लागणारी फीचर्स लॉग इन आवश्यक करतात आणि प्रति-वापरकर्ता मर्यादा आहेत.
- प्रत्येक पेड प्रदात्याकडे खर्च मर्यादा किंवा अलर्ट आहे.
- मला प्रत्येक की कशी बदलायची ते माहीत आहे, आणि कधीही उघड झालेली प्रत्येक की बदलली गेली आहे.
Mythex वर की सुरक्षित ठेवणे
Mythex कीज तुमच्या कोड आणि चॅटपासून दोन मार्गांनी दूर ठेवते:
- सिक्रेट्स विनंती कार्ड. एजंटला की हवी असेल तेव्हा, ते चॅटमध्ये एक कार्ड दाखवते जिथे तुम्ही मूल्य मेसेज बॉक्समध्ये नव्हे तर फॉर्म फील्ड्समध्ये टाइप करता, आणि ते प्रोजेक्ट सिक्रेट म्हणून साठवले जाते. चॅटमधील सिक्रेट्स पहा.
- प्रोजेक्ट सेटिंग्ज → Secrets, किंवा चॅटमध्ये
/secrets, तुम्हाला स्वतः की जोडण्या किंवा बदलण्यासाठी. पर्यावरण व्हेरिएबल्स आणि सिक्रेट्स पहा.
प्रकाशित ॲपसाठी सिक्रेट बदलल्यानंतर, लाइव्ह ॲप ते उचलेल यासाठी पुन्हा प्रकाशित करा. एक्सपोर्ट केलेल्या प्रोजेक्ट्समधून सिक्रेट्स वगळले जातात, त्यामुळे तुम्ही कोड पुढे कुठेही चालवाल तिथे त्या पुन्हा जोडा. एखादी की कधी चॅटमध्ये दिसली, तर प्रदात्याकडे ती बदला.
लाँचपूर्वीच्या उर्वरित सुरक्षा तपासणीसाठी, AI ने बनवलेल्या ॲप्ससाठी सुरक्षा चेकलिस्ट पूर्ण करा. तुम्ही AI फीचर्स जोडत असाल, तर LLM API कसे वापरायचे की आणि खर्च यावर अधिक सखोलपणे सांगते.
प्रश्न
फ्रंटएंड कोडमध्ये API की ठेवणे सुरक्षित आहे का?
फक्त तेव्हाच, जेव्हा प्रदात्याने ती की सार्वजनिक असावी अशी डिझाइन केली असेल, जसे Stripe ची publishable की किंवा फक्त तुमच्या डोमेनसाठी मर्यादित नकाशाची की. पैसे खर्च करू शकणारी किंवा खासगी डेटा वाचू शकणारी कोणतीही की सर्व्हरवरच राहिली पाहिजे, कारण ब्राउझरला पाठवलेले काहीही कोणीही वाचू शकतो.
मी API की चॅटमध्ये किंवा सार्वजनिक रिपॉझिटरीमध्ये पेस्ट केली असेल तर काय करावे?
ती बदला: प्रदात्याकडे नवी की तयार करा, तुमच्या ॲपचे सिक्रेट्स अपडेट करा, पुन्हा प्रकाशित करा, मग जुनी की हटवा. संदेश किंवा कमिट हटवणे पुरेसे नाही, कारण त्याच्या प्रती आधीच असू शकतात.
API की कुठे साठवाव्यात?
तुमच्या होस्टच्या पर्यावरण व्हेरिएबल्स किंवा सिक्रेट्स सेटिंग्जमध्ये, जी रनटाइमला सर्व्हर-साइड कोडद्वारे वाचली जाते. त्या सोर्स फाइल्समध्ये लिहिल्या जाऊ नयेत, Git मध्ये कमिट होऊ नयेत किंवा स्क्रीनशॉट्समध्ये येऊ नयेत.
माझी API की माझ्या वेबसाइटवर उघड झाली आहे हे कसे ओळखायचे?
तुमची लाइव्ह साइट उघडा, पेज सोर्स आणि JavaScript फाइल्स ब्राउझरच्या डेव्हलपर टूल्समध्ये पहा, आणि कीची सुरुवात शोधा. ती दिसली, तर ती उघड झाली आहे आणि सर्व्हरवर हलवून बदलली पाहिजे.