உங்கள் ஆப்பில் API விசைகளை எப்படி பாதுகாப்பாக வைத்திருப்பது
API விசைகளைப் பாதுகாக்க, அவற்றை உங்கள் ஹோஸ்டில் ரகசியங்களாக அல்லது சூழல் மாறிகளாக சேமியுங்கள், சர்வர் பக்கக் குறியீட்டில் மட்டும் பயன்படுத்துங்கள், அரட்டை, குறியீட்டுக் கோப்புகள், திரைக்காட்சிகள் அல்லது Git களஞ்சியத்தில் ஒருபோதும் ஒட்டாதீர்கள். ஒவ்வொரு விசைக்கும் தேவையான குறைந்தபட்ச அனுமதியைக் கொடுங்கள், வழங்குநரிடம் செலவு வரம்புகளை அமையுங்கள், விசை எப்போதாவது கசிந்தால், அது எங்கே தோன்றியது என்பதை மறைப்பதற்குப் பதிலாக அதை மாற்றுங்கள் — புதியதை உருவாக்கி பழையதை நீக்குங்கள்.
API விசை என்பது ஒரு சேவைக்கான கடவுச்சொல். உங்கள் OpenAI விசை வேறொருவர் உங்கள் பணத்தில் AI-ஐப் பயன்படுத்த அனுமதிக்கும்; உங்கள் Stripe ரகசிய விசை பணத்தைத் திரும்பத் தரும் அதிகாரம் தரும்; உங்கள் மின்னஞ்சல் வழங்குநர் விசை உங்கள் பெயரில் மின்னஞ்சல் அனுப்ப அனுமதிக்கும். AI ஆப் builder-கள் இவற்றை இணைப்பதில் சிறந்தவை, ஆனால் அவை எங்கே முடிகின்றன என்பதில் எப்போதும் கவனமாக இருப்பதில்லை. அதனால் இந்த வழிகாட்டி அவற்றை எப்படிப் பாதுகாப்பது, எப்படிச் சரிபார்ப்பது என்பதை உள்ளடக்குகிறது.
பொது விசைகளும் ரகசிய விசைகளும்
ஒவ்வொரு விசையும் ரகசியம் அல்ல. வேறுபாட்டை அறிவது, தவறான ஒன்றைப் பற்றிப் பதறுவதையும் சரியான ஒன்றைப் புறக்கணிப்பதையும் தடுக்கும்.
| வகை | எடுத்துக்காட்டுகள் | உலாவியில் இருக்கலாமா? |
|---|---|---|
| Publishable / பொது விசைகள் | Stripe pk_… விசை, உங்கள் டொமைனுக்கு வரம்பிடப்பட்ட வரைபட விசை, சில analytics ID-கள் | ஆம் — அதற்காகவே வடிவமைக்கப்பட்டவை |
| ரகசிய விசைகள் | Stripe sk_…, OpenAI மற்றும் Anthropic விசைகள், மின்னஞ்சல் வழங்குநர் விசைகள், தரவுத்தள கடவுச்சொற்கள் | ஒருபோதும் இல்லை |
| சேவை/நிர்வாக விசைகள் | ஹோஸ்ட் செய்யப்பட்ட தரவுத்தளத்தின் அணுகல் விதிகளைத் தவிர்க்கும் விசைகள் | ஒருபோதும் இல்லை — மிகவும் உணர்திறனானவையாகக் கருதுங்கள் |
ஒரு விசை எந்த வகை என்று உறுதியில்லையென்றால், வழங்குநரின் ஆவணங்களைப் பாருங்கள். சந்தேகமிருந்தால், ரகசியமாகக் கருதுங்கள்.
படி 1: விசைகளை குறியீட்டில் அல்ல, ரகசியங்களாக வையுங்கள்
விசைகள் உங்கள் ஹோஸ்டின் சூழல் மாறிகள் அல்லது ரகசிய அமைப்புகளில் இருக்க வேண்டும். உங்கள் குறியீடு அவற்றை இயக்க நேரத்தில் பெயரால் படிக்கும் (உதாரணமாக process.env.OPENAI_API_KEY), அதனால் மதிப்பு உங்கள் கோப்புகளில் ஒருபோதும் தோன்றாது. பின்னணிக்கு, சூழல் மாறிகள் மற்றும் ரகசியங்கள் என்றால் என்ன பாருங்கள்.
ஒவ்வொரு API விசையையும் குறியீட்டிலிருந்து சூழல் மாறிகளுக்கு நகர்த்துங்கள். நீங்கள் கண்ட ஒவ்வொரு விசையையும், அது எந்தக் கோப்பில் இருந்தது, நீங்கள் பயன்படுத்திய மாறியின் பெயரையும் பட்டியலிடுங்கள். மதிப்புகளைக் காட்டாதீர்கள்.
பிறகு எதுவும் மீதமில்லையா என்று சரிபாருங்கள்:
கட்டமைப்புக் கோப்புகள் மற்றும் ஏதேனும் .env கோப்புகள் உட்பட முழு திட்டத்திலும், API விசை போல தோன்றும் எதையும் தேடுங்கள். கோப்பையும் வரியையும் அறிக்கையிடுங்கள், மதிப்பை அல்ல.
படி 2: ரகசிய விசைகளை சர்வரில் மட்டும் பயன்படுத்துங்கள்
இதுதான் மிக முக்கியமான விதி. உலாவி பெறும் எதையும் ஒரு பார்வையாளர் படிக்கலாம் — பக்க மூலமும் JavaScript கோப்புகளும் developer tools-இல் தெரியும்.
ஆப்புக்கு OpenAI-ஐ அழைக்க வேண்டுமென்றால், உலாவி உங்கள் சர்வரை அழைக்க வேண்டும், உங்கள் சர்வர் விசையுடன் OpenAI-ஐ அழைக்கும். விசை ஒருபோதும் சர்வரை விட்டு வெளியேறாது.
அரட்டை அம்சம் OpenAI-ஐ நேரடியாக உலாவியிலிருந்து அழைக்கிறது. அந்த அழைப்பை சர்வர் API route-க்கு நகர்த்துங்கள், அது சூழலிலிருந்து OPENAI_API_KEY-ஐப் படிக்கட்டும். உலாவி எங்கள் route-ஐ மட்டும் அழைக்கட்டும். அந்த route-க்கு உள்நுழைவு தேவை.
முன்பக்க கட்டமைப்புகளில் ஒரு பொதுவான பொறியை கவனியுங்கள்: பொது முன்னொட்டுள்ள மாறிகள் — Vite-இல் VITE_, Next.js-இல் NEXT_PUBLIC_ — வேண்டுமென்றே உலாவிக் குறியீட்டில் உட்பொதிக்கப்படுகின்றன. அத்தகைய முன்னொட்டுடன் ஒரு ரகசிய விசை வைத்தால், அது "சூழல் மாறியில்" இருந்தாலும் வெளிப்பட்டுவிடும்.
படி 3: எதுவும் கசியவில்லை என்று சோதியுங்கள்
வேலை செய்ததென்று நம்பாதீர்கள் — நேரடித் தளத்தைச் சரிபாருங்கள்:
- வெளியிட்ட ஆப்பை உலாவியில் திறக்கவும்.
- developer tools-ஐத் திறந்து Sources அல்லது Network தாவலுக்குச் செல்லவும்.
- ஒவ்வொரு ரகசிய விசையின் முதல் எழுத்துகளை (உதாரணமாக
sk_அல்லதுsk-) கோப்புகள் முழுவதும் தேடவும். - ஆப் செய்யும் நெட்வொர்க் கோரிக்கைகளைச் சரிபார்க்கவும். உலாவியிலிருந்து நேரடியாக ஒரு பணம் செலுத்தும் AI வழங்குநருக்குச் செல்லும் கோரிக்கை ஓர் எச்சரிக்கை.
ஒரு ரகசிய விசையைக் கண்டால், அதை சர்வருக்கு நகர்த்துங்கள் (படி 2) மற்றும் மாற்றுங்கள் (படி 6), ஏனெனில் அது ஏற்கனவே பொதுவில் இருந்தது.
படி 4: ஒவ்வொரு விசையும் என்ன செய்ய முடியும் என்பதைக் கட்டுப்படுத்துங்கள்
பல வழங்குநர்கள் ஒரு விசையை வரம்பிட அனுமதிக்கின்றன:
- வரம்பிடப்பட்ட அல்லது கட்டுப்படுத்தப்பட்ட விசைகள், உங்கள் ஆப்புக்குத் தேவையானதை மட்டும் செய்யக்கூடியவை. உதாரணமாக Stripe குறிப்பிட்ட அனுமதிகளுடன் கட்டுப்படுத்தப்பட்ட விசைகளை ஆதரிக்கிறது.
- பொதுவாக இருக்க வேண்டிய விசைகளுக்கு டொமைன் அல்லது IP கட்டுப்பாடுகள், உதாரணமாக வரைபட விசைகள்.
- ஒவ்வொரு ஆப்புக்கும் சூழலுக்கும் தனி விசைகள், அதனால் ஒரு கசிவு எல்லாவற்றையும் வெளிப்படுத்தாது, ஒன்றை ரத்து செய்தால் மற்றவை உடையாது.
- உருவாக்கும்போது சோதனை விசைகள்; நேரலை விசைகள் வெளியிட்ட ஆப்பில் மட்டும்.
படி 5: சேதத்துக்கு ஒரு வரம்பு வையுங்கள்
நன்கு பாதுகாக்கப்பட்ட விசையையும் உங்கள் சொந்த ஆப் மூலம் துஷ்பிரயோகம் செய்யலாம் — உதாரணமாக, யாரோ உங்கள் AI அம்சத்தை ஆயிரக்கணக்கான முறை ஸ்கிரிப்ட் மூலம் இயக்குவது.
- ஒவ்வொரு பணம் செலுத்தும் வழங்குநரிலும் செலவு வரம்புகள் அல்லது எச்சரிக்கைகளை அமையுங்கள்.
- ஒவ்வொரு அழைப்புக்கும் பணம் செலவாகும் எந்த அம்சத்துக்கும் உள்நுழைவைத் தேவைப்படுத்துங்கள்.
- ஒவ்வொரு பயனருக்கும் ஒரு வரம்பை சேர்க்கவும். rate limiting என்றால் என்ன பாருங்கள்.
/api/chat-க்கு ஒரு பயனருக்கு ஒரு மணி நேரத்துக்கு 30 AI கோரிக்கைகள் என்ற வரம்பைச் சேர்க்கவும். வரம்பை அடையும்போது தெளிவான செய்தியைத் திருப்பித் தரவும். உள்நுழையாத பயனர்களின் கோரிக்கைகளை நிராகரிக்கவும்.
படி 6: கசியும் விசைகளை மாற்றுங்கள்
ஒரு ரகசிய விசை இருக்கக் கூடாத இடத்தில் தோன்றினால் — அரட்டைச் செய்தி, commit, திரைக்காட்சி, ஆதரவுக் கோரிக்கை, உலாவிக் குறியீடு — அது சமரசம் செய்யப்பட்டது என்று கருதுங்கள்.
- வழங்குநரிடம் புதிய விசையை உருவாக்குங்கள்.
- உங்கள் ஆப்பின் அமைப்புகளில் ரகசியத்தைப் புதுப்பியுங்கள்.
- நேரடி ஆப் புதிய விசையைப் பயன்படுத்த மீண்டும் வெளியிடுங்கள் அல்லது deploy செய்யுங்கள்.
- வழங்குநரிடம் பழைய விசையை நீக்குங்கள்.
- அடையாளம் தெரியாத செயல்பாடு ஏதேனும் உள்ளதா என்று வழங்குநரின் பயன்பாட்டுப் பதிவுகளைச் சரிபாருங்கள்.
அரட்டைச் செய்தியையோ Git commit-ஐயோ நீக்குவது போதாது. Git வரலாறு பழைய பதிப்புகளை வைத்திருக்கும், பொதுவில் இருந்தது ஏற்கனவே நகலெடுக்கப்பட்டிருக்கலாம்.
பொதுவான தவறுகள்
- prompt-இல் விசையை ஒட்டுவது. இப்போது அது அரட்டை வரலாற்றில் உள்ளது. அதற்குப் பதிலாக ஒரு ரகசியப் படிவத்தைப் பயன்படுத்துங்கள்.
- ஒரு ரகசிய மாறியில் பொது முன்னொட்டு.
VITE_OPENAI_API_KEYவிசையை ஒவ்வொரு பார்வையாளருக்கும் அனுப்பிவிடும். .envகோப்பை commit செய்வது. முதல் push-க்கு முன் அது.gitignore-இல் இருக்கிறதா என்று உறுதிசெய்யுங்கள்.- எல்லா இடத்திலும் ஒரே விசை. சோதனைக்கும் நேரலைக்கும், ஒவ்வொரு ஆப்புக்கும் தனி விசைகளைப் பயன்படுத்துங்கள்.
- செலவு வரம்பு இல்லாதது. வரம்பு இல்லாத கசிந்த அல்லது துஷ்பிரயோகம் செய்யப்பட்ட விசை, நீங்கள் கவனிக்கும் முன் பெரிய பில்லை உருவாக்கலாம்.
- மறைப்பது, மாற்றாதது. ஒரு விசை வெளிப்பட்டவுடன், ஒரு புதிய விசை மட்டுமே அதைச் சரிசெய்யும்.
- திரைக்காட்சிகளில் விசைகள். உதவி கேட்கும் முன் அமைப்புப் பக்கங்களை வெட்டவும் மறைக்கவும்.
சரிபார்ப்புப் பட்டியல்
- ஒவ்வொரு விசையும் ரகசியமாக அல்லது சூழல் மாறியாக சேமிக்கப்பட்டுள்ளது, குறியீட்டில் அல்ல.
- .env கோப்போ விசையோ Git-இல் commit செய்யப்படவில்லை.
- ரகசிய விசைகள் சர்வர் பக்கக் குறியீட்டில் மட்டும் பயன்படுகின்றன.
- எந்த ரகசிய மாறிக்கும்
VITE_அல்லதுNEXT_PUBLIC_போன்ற பொது முன்னொட்டு இல்லை. - ஒவ்வொரு விசையின் முன்னொட்டுக்காக நேரடித் தளத்தின் JavaScript-ஐத் தேடினேன், எதுவும் இல்லை.
- வழங்குநர் அனுமதிக்கும் இடங்களில் விசைகள் வரம்பிடப்பட்டுள்ளன.
- சோதனை மற்றும் நேரலை விசைகள் தனியாக உள்ளன.
- பணம் செலவாகும் அம்சங்களுக்கு உள்நுழைவும் ஒரு பயனருக்கான வரம்புகளும் உள்ளன.
- ஒவ்வொரு பணம் செலுத்தும் வழங்குநருக்கும் செலவு வரம்பு அல்லது எச்சரிக்கை உள்ளது.
- ஒவ்வொரு விசையையும் எப்படி மாற்றுவது என்று எனக்குத் தெரியும்; ஒருமுறையேனும் வெளிப்பட்ட எந்த விசையும் மாற்றப்பட்டுள்ளது.
Mythex-இல் விசைகளைப் பாதுகாப்பது
Mythex விசைகளை உங்கள் குறியீட்டிலிருந்தும் அரட்டையிலிருந்தும் இரண்டு வழிகளில் விலக்கி வைக்கிறது:
- ரகசியக் கோரிக்கை அட்டை. ஏஜென்ட்டுக்கு விசை தேவைப்படும்போது, அது அரட்டையில் ஒரு அட்டையைக் காட்டுகிறது; அதில் மதிப்பை செய்தி பெட்டியில் அல்ல, படிவப் புலங்களில் உள்ளிடுவீர்கள், அது ஒரு திட்ட ரகசியமாக சேமிக்கப்படும். அரட்டையில் ரகசியங்கள் பாருங்கள்.
- திட்ட அமைப்புகள் → Secrets, அல்லது அரட்டையில்
/secrets, நீங்களே விசைகளைச் சேர்க்க அல்லது மாற்ற. சூழல் மாறிகளும் ரகசியங்களும் பாருங்கள்.
வெளியிட்ட ஆப்புக்கு ஒரு ரகசியத்தை மாற்றிய பின், நேரடி ஆப் அதை எடுக்க மீண்டும் வெளியிடுங்கள். ஏற்றுமதி செய்யப்பட்ட திட்டங்களில் ரகசியங்கள் விடப்படுகின்றன, அதனால் குறியீட்டை அடுத்து எங்கு இயக்கினாலும் அவற்றை மீண்டும் சேர்க்கவும். ஒரு விசை எப்போதாவது அரட்டையில் தோன்றினால், வழங்குநரிடம் அதை மாற்றுங்கள்.
வெளியீட்டுக்கு முந்தைய மீதிப் பாதுகாப்புச் சோதனைக்கு, AI-உருவாக்கிய ஆப்புகளுக்கான பாதுகாப்புப் பட்டியல் வழியாகச் செல்லுங்கள். AI அம்சங்களைச் சேர்த்தால், LLM API-களை எப்படிப் பயன்படுத்துவது விசைகளையும் செலவுகளையும் ஆழமாக விளக்குகிறது.
கேள்விகள்
முன்பக்க குறியீட்டில் API விசையை வைப்பது பாதுகாப்பானதா?
வழங்குநர் அந்த விசையைப் பொதுவாக இருக்கும்படி வடிவமைத்திருந்தால் மட்டுமே, உதாரணமாக Stripe-இன் publishable விசை அல்லது உங்கள் டொமைனுக்கு மட்டும் வரம்பிடப்பட்ட வரைபட விசை. பணத்தைச் செலவழிக்கக்கூடிய அல்லது தனிப்பட்ட தரவைப் படிக்கக்கூடிய எந்த விசையும் சர்வரிலேயே இருக்க வேண்டும்; உலாவிக்கு அனுப்பப்படுவதை யார் வேண்டுமானாலும் படிக்கலாம்.
ஒரு API விசையை அரட்டையிலோ பொது களஞ்சியத்திலோ ஒட்டிவிட்டால் என்ன செய்வது?
அதை மாற்றுங்கள்: வழங்குநரிடம் புதிய விசையை உருவாக்குங்கள், உங்கள் ஆப்பின் ரகசியங்களைப் புதுப்பியுங்கள், மீண்டும் வெளியிடுங்கள், பிறகு பழைய விசையை நீக்குங்கள். செய்தியையோ commit-ஐயோ நீக்குவது போதாது, ஏனெனில் நகல்கள் ஏற்கனவே இருக்கலாம்.
API விசைகளை எங்கே சேமிக்க வேண்டும்?
உங்கள் ஹோஸ்டின் சூழல் மாறிகள் அல்லது ரகசிய அமைப்புகளில், இயக்க நேரத்தில் சர்வர் பக்கக் குறியீடு படிக்கும்படி. அவை மூலக் கோப்புகளில் எழுதப்படக்கூடாது, Git-இல் commit செய்யப்படக்கூடாது, திரைக்காட்சிகளிலும் இடம்பெறக்கூடாது.
என் இணையதளத்தில் API விசை வெளிப்பட்டிருக்கிறதா என்று எப்படிச் சொல்வது?
நேரடித் தளத்தைத் திறந்து, பக்க மூலத்தையும் உலாவியின் developer tools-இல் JavaScript கோப்புகளையும் பாருங்கள்; விசையின் தொடக்க எழுத்துகளைத் தேடுங்கள். அது தெரிந்தால், அது வெளிப்பட்டுள்ளது; சர்வருக்கு நகர்த்தி மாற்ற வேண்டும்.