ಎನ್ವಿರಾನ್ಮೆಂಟ್ ವೇರಿಯೇಬಲ್ಗಳು ಮತ್ತು ಸೀಕ್ರೆಟ್ಗಳು ಎಂದರೇನು? ಸರಳ ಮಾರ್ಗದರ್ಶಿ
ಒಂದು ಎನ್ವಿರಾನ್ಮೆಂಟ್ ವೇರಿಯೇಬಲ್ ಎಂದರೆ ಹೆಸರಿನ ಒಂದು ಸೆಟ್ಟಿಂಗ್ — ಉದಾಹರಣೆಗೆ 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 ಪಬ್ಲಿಷಬಲ್ ಕೀ, ಫೀಚರ್ ಸ್ವಿಚ್ಗಳು | ಹೌದು, ಅದು ಸರಿ |
| ಸೀಕ್ರೆಟ್ಗಳು | Stripe ಸೀಕ್ರೆಟ್ ಕೀ, OpenAI ಅಥವಾ Anthropic API ಕೀ, ಡೇಟಾಬೇಸ್ ಸಂಪರ್ಕ ಸ್ಟ್ರಿಂಗ್, ಇಮೇಲ್ ಪೂರೈಕೆದಾರರ ಕೀ, ವೆಬ್ಹುಕ್ ಸಹಿ ಸೀಕ್ರೆಟ್ | ಎಂದಿಗೂ ಇಲ್ಲ |
ವೆಬ್ ಫ್ರೇಮ್ವರ್ಕ್ಗಳು ಈ ವಿಂಗಡಣೆಯನ್ನು ಸ್ಪಷ್ಟಪಡಿಸುತ್ತವೆ. Vite ನಲ್ಲಿ, VITE_ ಎಂದು ಪ್ರಾರಂಭವಾಗುವ ಹೆಸರುಗಳ ವೇರಿಯೇಬಲ್ಗಳನ್ನು ಮಾತ್ರ ಬ್ರೌಸರ್ ಕೋಡ್ಗೆ ಸೇರಿಸಲಾಗುತ್ತದೆ; Next.js ನಲ್ಲಿ ಪೂರ್ವಪ್ರತ್ಯಯ NEXT_PUBLIC_. ಇದು ಸುರಕ್ಷತಾ ವೈಶಿಷ್ಟ್ಯ: ಈ ಪೂರ್ವಪ್ರತ್ಯಯಗಳಿರುವ ಯಾವುದೇ ವಸ್ತು ಪ್ರತಿ ಸಂದರ್ಶಕ ಡೌನ್ಲೋಡ್ ಮಾಡುವ ಫೈಲ್ಗಳಲ್ಲಿ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ, ಆದ್ದರಿಂದ ಸೀಕ್ರೆಟ್ಗೆ ಯಾವತ್ತೂ ಆ ಪೂರ್ವಪ್ರತ್ಯಯ ನೀಡಬಾರದು.
ಒಂದು ಉದಾಹರಣೆ: AI ಸಾರಾಂಶ ಬಟನ್
"ಈ ಟಿಪ್ಪಣಿಯನ್ನು ಸಾರಾಂಶ ಮಾಡಿ" ಎಂಬ ಬಟನ್ ಬೇಕು ಎಂದುಕೊಳ್ಳಿ, ಅದು AI ಮಾದರಿಯನ್ನು ಕರೆಯುತ್ತದೆ.
ಅಸುರಕ್ಷಿತ ಆವೃತ್ತಿ: ಬಟನ್ನ ಕೋಡ್, ಬ್ರೌಸರ್ನಲ್ಲಿ ಚಾಲನೆಯಾಗಿ, API ಕೀಯನ್ನು ಅದರಲ್ಲಿಯೇ ಬರೆದು AI ಪೂರೈಕೆದಾರರನ್ನು ನೇರವಾಗಿ ಕರೆಯುತ್ತದೆ. ಪೂರ್ವವೀಕ್ಷಣೆಯಲ್ಲಿ ಅದು ಕೆಲಸ ಮಾಡುತ್ತದೆ. ಆದರೆ ಇದರರ್ಥ ಯಾರಾದರೂ ಬ್ರೌಸರ್ನ ಡೆವಲಪರ್ ಟೂಲ್ಸ್ ತೆರೆದು ಕೀಯನ್ನು ನಕಲಿಸಿ ನಿಮ್ಮ ಖಾತೆಯಲ್ಲಿ ಬಿಲ್ ಹೆಚ್ಚಿಸಬಹುದು.
ಸುರಕ್ಷಿತ ಆವೃತ್ತಿ:
- ನೀವು ಕೀಯನ್ನು AI ಪೂರೈಕೆದಾರರಲ್ಲಿ ರಚಿಸಿ, ಅದನ್ನು ನಿಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್ ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ
OPENAI_API_KEY(ಅಥವಾ ಅಂತಹ) ಎಂಬ ಸೀಕ್ರೆಟ್ ಆಗಿ ಉಳಿಸುತ್ತೀರಿ. - ಬ್ಯಾಕ್ಎಂಡ್ನಲ್ಲಿ
POST /api/summariseಎಂಬ ಮಾರ್ಗವಿರುತ್ತದೆ. ಅದುprocess.env.OPENAI_API_KEYಅನ್ನು ಓದಿ, ಬಳಕೆದಾರ ಲಾಗಿನ್ ಆಗಿದ್ದಾನೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಿ ಪೂರೈಕೆದಾರರನ್ನು ಕರೆಯುತ್ತದೆ. - ಬಟನ್ ಪೂರೈಕೆದಾರರನ್ನು ಅಲ್ಲ, ನಿಮ್ಮ ಮಾರ್ಗವನ್ನು ಕರೆಯುತ್ತದೆ. ಬ್ರೌಸರ್ ಕೀಯನ್ನು ಎಂದಿಗೂ ನೋಡುವುದಿಲ್ಲ.
- ಅದೇ ಸೀಕ್ರೆಟ್ ಅನ್ನು ಪ್ರಕಟಿಸಿದ ಆ್ಯಪ್ನ ಸೆಟ್ಟಿಂಗ್ಗಳಿಗೂ ಸೇರಿಸಿ ಮತ್ತೆ ನಿಯೋಜಿಸಿ, ಆಗ ಲೈವ್ ಸೈಟ್ಗೂ ಅದು ಇರುತ್ತದೆ.
ಈ ಮಾದರಿ — ಬ್ರೌಸರ್ ನಿಮ್ಮ ಸರ್ವರ್ ಅನ್ನು ಕರೆಯುತ್ತದೆ, ಸರ್ವರ್ ಕೀಯನ್ನು ಇಟ್ಟುಕೊಂಡು ಸೇವೆಯನ್ನು ಕರೆಯುತ್ತದೆ — ಪಾವತಿ, ಇಮೇಲ್, ನಕ್ಷೆಗಳು ಮತ್ತು ಪ್ರತಿ ಇತರ ಪಾವತಿಸಿದ API ಗೂ ಅನ್ವಯಿಸುತ್ತದೆ. LLM APIಗಳನ್ನು ಬಳಸುವ ಮಾರ್ಗದರ್ಶಿ AI ಪ್ರಕರಣವನ್ನು ಇನ್ನಷ್ಟು ಆಳವಾಗಿ ವಿವರಿಸುತ್ತದೆ.
ಪ್ರಮುಖ ಪದಗಳು
.envಫೈಲ್: ಸ್ಥಳೀಯ ಡೆವಲಪ್ಮೆಂಟ್ನಲ್ಲಿ ಬಳಸುವNAME=valueಸಾಲುಗಳ ಪಠ್ಯ ಫೈಲ್. ಅದು ಕಮಿಟ್ ಆಗದಂತೆ.gitignoreನಲ್ಲಿ ಸೇರಿಸಿ..env.example: ವೇರಿಯೇಬಲ್ ಹೆಸರುಗಳಿರುವ, ನಿಜ ಮೌಲ್ಯಗಳಿಲ್ಲದ ಪ್ರತಿ. ಇತರರಿಗೆ ಯಾವ ವೇರಿಯೇಬಲ್ಗಳನ್ನು ಹೊಂದಿಸಬೇಕೆಂದು ತಿಳಿಸಲು ಇದನ್ನು ಕಮಿಟ್ ಮಾಡಲಾಗುತ್ತದೆ.- ರೊಟೇಟ್: ಒಂದು ಸೀಕ್ರೆಟ್ ಅನ್ನು ಹೊಸದರಿಂದ ಬದಲಿಸಿ, ಹಳೆಯದನ್ನು ರದ್ದುಗೊಳಿಸುವುದು.
- ವ್ಯಾಪ್ತಿ / ಅನುಮತಿಗಳು: ಅನೇಕ ಪೂರೈಕೆದಾರರು ಕೆಲವೇ ಕೆಲಸಗಳನ್ನು ಮಾಡಬಲ್ಲ ಕೀಗಳನ್ನು ರಚಿಸಲು ಅವಕಾಶ ನೀಡುತ್ತಾರೆ. ಇಮೇಲ್ ಮಾತ್ರ ಕಳುಹಿಸಬಲ್ಲ ಕೀ, ಎಲ್ಲವನ್ನೂ ಮಾಡಬಲ್ಲ ಕೀಗಿಂತ ಕಡಿಮೆ ಅಪಾಯಕಾರಿ.
- ಟೆಸ್ಟ್ vs ಲೈವ್ ಕೀಗಳು: Stripe ನಂತಹ ಪೂರೈಕೆದಾರರು ಪರೀಕ್ಷೆ ಮತ್ತು ನಿಜ ಹಣಕ್ಕಾಗಿ ಪ್ರತ್ಯೇಕ ಕೀಗಳನ್ನು ನೀಡುತ್ತಾರೆ. ಲಾಂಚ್ ಆಗುವವರೆಗೆ ಟೆಸ್ಟ್ ಕೀಗಳನ್ನು ಬಳಸಿ.
- ಸೈನಿಂಗ್ ಸೀಕ್ರೆಟ್: ಒಂದು ಸಂದೇಶ, ಉದಾಹರಣೆಗೆ ವೆಬ್ಹುಕ್, ನಿಜವಾಗಿ ಕಳುಹಿಸುವವರಿಂದಲೇ ಬಂದಿದೆ ಎಂದು ಪರಿಶೀಲಿಸಲು ಬಳಸುವ ಸೀಕ್ರೆಟ್.
ಸಾಮಾನ್ಯ ತಪ್ಪುಗಳು ಮತ್ತು ತಪ್ಪು ಕಲ್ಪನೆಗಳು
- "ನನ್ನ ರೆಪೊಸಿಟರಿ ಖಾಸಗಿಯಾಗಿದೆ, ಆದ್ದರಿಂದ ಅದರಲ್ಲಿ ಕೀಗಳಿರುವುದು ಸರಿ." ಖಾಸಗಿ ರೆಪೊಸಿಟರಿಗಳೂ ಹಂಚಿಕೊಳ್ಳಲ್ಪಡುತ್ತವೆ, ಫೋರ್ಕ್ ಆಗುತ್ತವೆ, ಎಕ್ಸ್ಪೋರ್ಟ್ ಆಗುತ್ತವೆ ಮತ್ತು ಲ್ಯಾಪ್ಟಾಪ್ಗಳಿಗೆ ಕ್ಲೋನ್ ಆಗುತ್ತವೆ. ಕೀಗಳು ಅಲ್ಲಿ ಇರಬಾರದು. ಪ್ರಾಜೆಕ್ಟ್ ಅನ್ನು GitHub ಗೆ ಸಂಪರ್ಕಿಸಿದರೆ, ಯಾವುದೇ
.envಫೈಲ್ ಸೇರದಿರುವುದನ್ನು ಪರಿಶೀಲಿಸಿ. - "ನಾನು ಅಳಿಸಿದೆ, ಆದ್ದರಿಂದ ಅದು ಹೋಯಿತು." Git ಇತಿಹಾಸ ಉಳಿಸುತ್ತದೆ, ಚಾಟ್ ಲಾಗ್ಗಳೂ ಸಂದೇಶಗಳನ್ನು ಉಳಿಸುತ್ತವೆ. ಒಂದು ಕೀ ಎಂದಾದರೂ ಬಹಿರಂಗವಾಗಿದ್ದರೆ, ಅದನ್ನು ರೊಟೇಟ್ ಮಾಡಿ.
- ಸೀಕ್ರೆಟ್ಗೆ ಸಾರ್ವಜನಿಕ ಪೂರ್ವಪ್ರತ್ಯಯ ಬಳಸುವುದು.
VITE_OPENAI_KEYನಿಮ್ಮ ಕೀಯನ್ನು ಬ್ರೌಸರ್ ಬಂಡಲ್ನಲ್ಲಿ ಇಡುತ್ತದೆ. - ಮತ್ತೆ ನಿಯೋಜಿಸಲು ಮರೆಯುವುದು. ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ವೇರಿಯೇಬಲ್ ಬದಲಿಸಿದರೆ, ಸಾಮಾನ್ಯವಾಗಿ ಆ್ಯಪ್ ಮರುಆರಂಭವಾದ ಅಥವಾ ಮತ್ತೆ ಪ್ರಕಟವಾದ ನಂತರವೇ ಅದು ಜಾರಿಗೆ ಬರುತ್ತದೆ.
- ಎಲ್ಲದಕ್ಕೂ ಒಂದೇ ಕೀ. ಟೆಸ್ಟ್ ಮತ್ತು ಲೈವ್ಗೆ ಪ್ರತ್ಯೇಕ ಕೀಗಳು, ಮತ್ತು ಪ್ರತಿ ಆ್ಯಪ್ಗೆ ಬೇರೆ ಕೀಗಳು, ಉಳಿದವುಗಳನ್ನು ಮುರಿಯದೆ ಒಂದನ್ನು ರದ್ದುಗೊಳಿಸಲು ಸಾಧ್ಯವಾಗಿಸುತ್ತವೆ.
- ಖರ್ಚು ಮಿತಿ ಇಲ್ಲದಿರುವುದು. ಪಾವತಿಸಿದ APIಗಳಿಗೆ, ಕೀ ಸೋರಿಕೆಯಾದರೆ ಎಂಬ ಮುನ್ನೆಚ್ಚರಿಕೆಯಾಗಿ ಪೂರೈಕೆದಾರರ ಡ್ಯಾಶ್ಬೋರ್ಡ್ನಲ್ಲಿ ಬಜೆಟ್ ಅಥವಾ ಮಿತಿ ಹೊಂದಿಸಿ.
ನಿಮ್ಮ AI ಬಿಲ್ಡರ್ನಿಂದ ಏನು ಕೇಳಬೇಕು
- "
STRIPE_SECRET_KEYಎಂಬ ಎನ್ವಿರಾನ್ಮೆಂಟ್ ವೇರಿಯೇಬಲ್ನಿಂದ Stripe ಸೀಕ್ರೆಟ್ ಕೀಯನ್ನು ಓದಿ. ಅದನ್ನು ಸರ್ವರ್ನಲ್ಲಿ ಮಾತ್ರ ಬಳಸಿ." - "ಯಾವುದೇ ಸೀಕ್ರೆಟ್ ಕ್ಲೈಂಟ್-ಸೈಡ್ ಕೋಡ್ನಲ್ಲಿ ಬಳಕೆಯಾಗದಂತೆ, ಅಥವಾ
VITE_/NEXT_PUBLIC_ಪೂರ್ವಪ್ರತ್ಯಯ ಪಡೆಯದಂತೆ ಖಚಿತಪಡಿಸಿ." - "ಆ್ಯಪ್ಗೆ ಬೇಕಾದ ಪ್ರತಿ ವೇರಿಯೇಬಲ್ ಅನ್ನು ಮೌಲ್ಯಗಳಿಲ್ಲದೆ ಪಟ್ಟಿ ಮಾಡುವ
.env.exampleರಚಿಸಿ, ಮತ್ತು.envgit-ignore ಆಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿ." - "ಕಟ್ಟಲಾದ ಫ್ರಂಟ್ಎಂಡ್ ಫೈಲ್ಗಳಲ್ಲಿ API ಕೀಯಂತೆ ಕಾಣುವ ಯಾವುದೇ ಸ್ಟ್ರಿಂಗ್ ಇದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಿ."
ಪ್ರಕಟಣೆಗೆ ಮುನ್ನ ಇತರ ಪರಿಶೀಲನೆಗಳ ಜೊತೆಗೆ ಸೀಕ್ರೆಟ್ಗಳನ್ನೂ ಒಳಗೊಂಡಿರುವ AI ನಿರ್ಮಿತ ಆ್ಯಪ್ಗಳಿಗಾಗಿ ಭದ್ರತಾ ಪರಿಶೀಲನಾಪಟ್ಟಿ ಅನ್ನು ನೋಡಿ.
Mythex ನಲ್ಲಿ ಸೀಕ್ರೆಟ್ಗಳು
Mythex ನಲ್ಲಿ, ಸೀಕ್ರೆಟ್ಗಳು ಪ್ರಾಜೆಕ್ಟ್ ಎನ್ವಿರಾನ್ಮೆಂಟ್ ವೇರಿಯೇಬಲ್ಗಳಾಗಿದ್ದು, ಪೂರ್ವವೀಕ್ಷಣೆ ಸ್ಯಾಂಡ್ಬಾಕ್ಸ್ ಮತ್ತು ನೀವು ಪ್ರಕಟಿಸಿದ ಆ್ಯಪ್ ಎರಡಕ್ಕೂ ಸೇರಿಸಲ್ಪಡುತ್ತವೆ. ನೀವು ಪ್ರಾಜೆಕ್ಟ್ ಸೆಟ್ಟಿಂಗ್ಗಳು → Secrets ಅಡಿಯಲ್ಲಿ ಅಥವಾ ಚಾಟ್ನಲ್ಲಿ /secrets ಬಳಸಿ ಅವುಗಳನ್ನು ಸೇರಿಸಬಹುದು. ಏಜೆಂಟ್ಗೆ ಕೀ ಬೇಕಾದಾಗ, ಅದು ಚಾಟ್ನಲ್ಲಿ ಸೀಕ್ರೆಟ್ಸ್ ಕಾರ್ಡ್ ತೋರಿಸುತ್ತದೆ, ಆಗ ಮೌಲ್ಯ ಸಂದೇಶದ ಪಠ್ಯದಲ್ಲಿ ಬರದೆ ಫಾರ್ಮ್ ಫೀಲ್ಡ್ಗೆ ಹೋಗುತ್ತದೆ. ಲೈವ್ ಆ್ಯಪ್ಗಾಗಿ ಸೀಕ್ರೆಟ್ ಬದಲಿಸಿದರೆ, ನಿಯೋಜನೆ ಅದನ್ನು ತೆಗೆದುಕೊಳ್ಳಲು ಮತ್ತೆ ಪ್ರಕಟಿಸಿ. ಪ್ರಾಜೆಕ್ಟ್ ಎಕ್ಸ್ಪೋರ್ಟ್ಗಳಲ್ಲಿ ಸೀಕ್ರೆಟ್ಗಳು ಇರುವುದಿಲ್ಲ, ಮತ್ತು ಆಮದು ಮಾಡಿದ .env ಫೈಲ್ಗಳಿಂದ ಅವು ತೆಗೆಯಲ್ಪಡುತ್ತವೆ, ಆದ್ದರಿಂದ ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ಮತ್ತೆ ಸೇರಿಸಬೇಕು. ದಸ್ತಾವೇಜಿನಲ್ಲಿ ಎನ್ವಿರಾನ್ಮೆಂಟ್ ವೇರಿಯೇಬಲ್ಗಳು ಮತ್ತು ಸೀಕ್ರೆಟ್ಗಳು ಮತ್ತು ಚಾಟ್ನಲ್ಲಿ ಸೀಕ್ರೆಟ್ಗಳು ನೋಡಿ.
ಪ್ರಶ್ನೆಗಳು
ಎನ್ವಿರಾನ್ಮೆಂಟ್ ವೇರಿಯೇಬಲ್ ಎಂದರೇನು?
ಎನ್ವಿರಾನ್ಮೆಂಟ್ ವೇರಿಯೇಬಲ್ ಎಂದರೆ STRIPE_SECRET_KEY ಅಥವಾ DATABASE_URL ನಂತಹ ಹೆಸರಿನ ಸೆಟ್ಟಿಂಗ್. ಇದನ್ನು ಪ್ರೋಗ್ರಾಂ ಚಾಲನೆಯಾಗುವಾಗ ನೀಡಲಾಗುತ್ತದೆ, ಅದರ ಕೋಡ್ನಲ್ಲಿ ಬರೆಯಲಾಗುವುದಿಲ್ಲ. ಹೀಗಾಗಿ ಅದೇ ಕೋಡ್ ಡೆವಲಪ್ಮೆಂಟ್ ಮತ್ತು ಪ್ರೊಡಕ್ಷನ್ನಲ್ಲಿ ವಿಭಿನ್ನ ಮೌಲ್ಯಗಳನ್ನು ಬಳಸಬಹುದು.
ಎನ್ವಿರಾನ್ಮೆಂಟ್ ವೇರಿಯೇಬಲ್ ಮತ್ತು ಸೀಕ್ರೆಟ್ ನಡುವಿನ ವ್ಯತ್ಯಾಸವೇನು?
ಸೀಕ್ರೆಟ್ ಎಂದರೆ ಮೌಲ್ಯವನ್ನು ಖಾಸಗಿಯಾಗಿ ಇಡಬೇಕಾದ ಎನ್ವಿರಾನ್ಮೆಂಟ್ ವೇರಿಯೇಬಲ್. ಉದಾಹರಣೆಗೆ API ಕೀ, ಡೇಟಾಬೇಸ್ ಪಾಸ್ವರ್ಡ್ ಅಥವಾ ವೆಬ್ಹುಕ್ ಸಹಿ ಮಾಡುವ ಸೀಕ್ರೆಟ್. ಸೈಟ್ ಹೆಸರು ಅಥವಾ ಫೀಚರ್ ಸ್ವಿಚ್ನಂತಹ ಇತರ ಎನ್ವಿರಾನ್ಮೆಂಟ್ ವೇರಿಯೇಬಲ್ಗಳು ಸಾರ್ವಜನಿಕವಾಗಿರಬಹುದು.
ನನ್ನ ಫ್ರಂಟ್ಎಂಡ್ನಲ್ಲಿ API ಕೀಗಳನ್ನು ಇಡುವುದು ಸುರಕ್ಷಿತವೇ?
ಇಲ್ಲ. ಫ್ರಂಟ್ಎಂಡ್ ಕೋಡ್ನಲ್ಲಿರುವ ಯಾವುದೇ ವಸ್ತುವನ್ನು ಪ್ರತಿ ಸಂದರ್ಶಕರ ಬ್ರೌಸರ್ಗೆ ಡೌನ್ಲೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಯಾರಾದರೂ ಓದಬಹುದು. ಸೀಕ್ರೆಟ್ ಕೀಗಳನ್ನು ಸರ್ವರ್ನಲ್ಲಿ ಮಾತ್ರ ಬಳಸಬೇಕು. ಬ್ರೌಸರ್ ನಿಮ್ಮ ಸರ್ವರ್ ಅನ್ನು ಕರೆಯಬೇಕು, ಆ ಸರ್ವರ್ ನಂತರ ಪೂರೈಕೆದಾರರನ್ನು ಕರೆಯುತ್ತದೆ.
ನನ್ನ API ಕೀ ಸೋರಿಕೆಯಾದರೆ ನಾನು ಏನು ಮಾಡಬೇಕು?
ತಕ್ಷಣ ಪೂರೈಕೆದಾರರ ಬಳಿ ಆ ಕೀಯನ್ನು ರದ್ದುಗೊಳಿಸಿ ಅಥವಾ ಬದಲಿಸಿ, ಹೊಸದೊಂದನ್ನು ರಚಿಸಿ, ನಿಮ್ಮ ಆ್ಯಪ್ ಸೀಕ್ರೆಟ್ಗಳನ್ನು ಇಡುವ ಸ್ಥಳದಲ್ಲಿ ಅದನ್ನು ನವೀಕರಿಸಿ, ಮತ್ತು ಮತ್ತೆ ಪ್ರಕಟಿಸಿ. ಕೀಯನ್ನು ಕೋಡ್ ಅಥವಾ ಚಾಟ್ ಇತಿಹಾಸದಿಂದ ಅಳಿಸುವುದು ಸಾಕಾಗುವುದಿಲ್ಲ, ಏಕೆಂದರೆ ಅದರ ಪ್ರತಿಗಳು ಈಗಾಗಲೇ ಇರಬಹುದು.