المواقع الإلكترونية

تخزين أسرار التطبيق للموقع

The Secrets tab is an encrypted store for the sensitive configuration values a Node.js app needs, such as API keys, signing secrets and third-party tokens, kept per environment so your production…

تخزين أسرار التطبيق لموقع ما

يعتبر تبويب Secrets مخزنًا مشفرًا للقيم الحساسة للإعدادات التي يحتاجها تطبيق Node.js، مثل مفاتيح API والأسرار الموقّعة والرموز من جهات خارجية، ويتم الاحتفاظ به لكل بيئة حتى لا تختلط بيانات الإنتاج الخاصة بك مع بيانات المعاينة.

مكان وجود الأسرار

افتح Websites، انقر على الموقع، افتح قائمة Advanced في شريط تبويبات الموقع، واختر Secrets. يحمل التبويب عنوان Secrets.

يظهر التبويب فقط على مواقع Node.js. لا تعرض مواقع WordPress و PHP والمواقع الثابتة هذا التبويب، لأن إعداداتها موجودة في ملفات على القرص بدلاً من ذلك: wp-config.php لـ WordPress، وأيًا كان ما يقرأه إطار العمل الخاص بك لتطبيق PHP عادي.

تبويب Secrets لموقع Node.js في KPanel

كيفية حماية القيم

يتم تشفير كل قيمة قبل أن تلمس قاعدة البيانات. لا يتم تخزين أي شيء كنص قابل للقراءة، وعرض القائمة لا يعرض أبدًا قيمة كاملة: فهو يعرض قناعًا يحتوي على آخر أربعة أحرف فقط، حتى تتمكن من التمييز بين مفتاحين متشابهين دون الكشف عن أي منهما.

يحمل كل صف شارة Encrypted كتذكير بذلك. قراءة قيمة مرة أخرى هي إجراء منفصل ومتعمد وليس شيئًا يحدث فقط بفتح الصفحة.

يتطلب تعيين الأسرار والكشف عنها وحذفها صلاحية sites:write. يمكن لعضو فريق القراءة فقط رؤية المفاتيح الموجودة وأقنعتها، لكن ليس قيمها.

البيئتان

يقوم عنصر التحكم المقسم في أعلى الصفحة بالتبديل بين production و preview. إنها مجموعات مفاتيح منفصلة تمامًا. لا يؤدي تعيين STRIPE_SECRET_KEY في الإنتاج إلى إنشاؤه في المعاينة، وحذفه من المعاينة لا يؤثر على الإنتاج.

هذا الفصل هو الهدف من هذه الميزة. بيئات المعاينة هي بيئات يمكن التخلص منها يمكن لأي شخص لديه حق الوصول إلى المستودع أن ينشئها، لذلك يجب أن تحتمل بيانات اعتماد الاختبار وليس البيانات المباشرة. اطلع على Preview Deploys For Pull Requests لمعرفة كيفية إنشاء بيئات المعاينة.

إضافة أو تحديث سر

  1. اختر البيئة باستخدام عنصر التحكم المقسم.
  2. اكتب الاسم في حقل KEY_NAME. يفرض الحقل الأحرف الكبيرة أثناء الكتابة.
  3. ضع القيمة في الحقل الثاني. يتم إخفاؤها أثناء الكتابة.
  4. انقر فوق Set.

يؤدي تعيين مفتاح موجود بالفعل إلى الكتابة فوقه. لا يوجد إجراء تعديل منفصل ولا خطوة تأكيد للكتابة فوق، لذا تحقق من تبويب البيئة قبل أن تنقر فوق Set.

قواعد اسم المفتاح

يجب أن يبدأ المفتاح برسالة كبيرة وقد يحتوي بعد ذلك على أحرف كبيرة وأرقام وأحرف سفلية، حتى 128 حرفًا. DATABASE_URL و API_KEY_V2 و SENTRY_DSN جميعها صحيحة. يتم رفض أي شيء آخر برسالة Key must be UPPER_SNAKE_CASE letters/numbers/underscore.

هناك حدان آخران من المهم معرفتهما:

  • لا يمكن أن تكون القيمة فارغة. سيؤدي تقديم قيمة فارغة إلى value required.
  • لا يمكن للقيمة أن تتجاوز 16 كيلوبايت. هذا سخي جدًا لرمز ولكن ليس كافيًا لسلسلة شهادة كاملة، على سبيل المثال، والتي تنتمي إلى ملف بدلاً من سر.

قراءة قيمة مرة أخرى

انقر فوق Copy على الصف. يقوم KPanel بفك تشفير القيمة على جانب الخادم ويضعها مباشرة في الحافظة الخاصة بك، مع تأكيد Value copied to clipboard. لم يتم طباعة القيمة على الشاشة، لذلك فإن مشاركة الشاشة أو الناظر من فوق الكتف لا يلتقطها.

يتم تسجيل كل كشف في سجل الحسابات الخاص بالموقع، جنبًا إلى جنب مع من فعله والمفتاح الذي يحتويه، ويظهر في Site Activity Log.

إذا كنت بحاجة إلى التحقق من صحة القيمة دون كشفها، قارن القناع بدلاً من ذلك. آخر أربعة أحرف كافية لتأكيد أن لديك الرمز الصحيح، وهي موجودة بالفعل على الشاشة.

استخدام السر في التطبيق الخاص بك

انسخ القيمة إلى حيث يقرأ تطبيقك إعداداته على الخادم. بالنسبة لتطبيق Node.js، هذا عادة ما يكون متغير بيئة تم تعيينه بواسطة مدير العمليات الخاص بك، أو ملف .env في جذر التطبيق يقوم الكود الخاص بك بتحميله عند بدء التشغيل.

لا تقم بارتكاب هذا الملف في المستودع الخاص بك. أضف .env إلى .gitignore قبل إنشاؤه. السر الذي تم نقله إلى git remote يجب أن يُعامل على أنه مسرب ويجب تدويره لديك المزود، لأنه يبقى في السجل حتى بعد حذف الملف.

يعتبر تبويب Secrets سجلك لقيمة ما، يتم الاحتفاظ به مشفرًا ومدققًا، بدلاً من ملاحظة في مدير كلمات المرور أو خيط رسالة. احتفظ به كمصدر الحقيقة: عند تدوير المفتاح لديك المزود، قم بتحديثه هنا في نفس الوقت، حتى يكون لدى الشخص التالي الذي يقوم بالنشر القيمة الحالية.

حذف سر

انقر فوق Delete على الصف. يطلب منك KPanel التأكيد باستخدام Delete {KEY}? ويحذركم من أن التطبيق سيفقد الوصول إلى هذه القيمة عند إعادة تشغيله التالية. لا توجد عملية تراجع ولا نسخة محفوظة، لذا إذا كنت قد تحتاج إلى القيمة مرة أخرى، انسخها أولاً.

احذف سرًا عندما يتم إلغاء بيانات الاعتماد الأساسية لديك المزود، أو عندما يتم إزالة الكود الذي استخدمه. ترك المفاتيح القديمة حول يجعل من الصعب معرفة، لاحقًا، أي منها يهم بالفعل.

تدوير بيانات الاعتماد بأمان

الترتيب الآمن دائمًا هو: إنشاء بيانات الاعتماد الجديدة لديك المزود، وتحديثها هنا، والنشر، وتأكيد عمل التطبيق، ثم إلغاء بيانات الاعتماد القديمة لديك المزود.

إذا فعلت ذلك بالطريقة الأخرى، فإن إلغاء أولاً يمنحك نافذة حيث يحمل التطبيق قيد التشغيل بيانات اعتماد ميتة وكل طلب يحتاج إليها يفشل. إذا كان التغيير محفوفًا بالمخاطر، فأنشئ نسخة احتياطية أولاً حتى تتمكن من العودة إلى حالة معروفة جيدة: اطلع على Taking a Backup.

استكشاف الأخطاء وإصلاحها

تبويب Secrets غير موجود في القائمة. الموقع ليس موقع Node.js. تحقق من حبة المكدس بجوار اسم الموقع في أعلى الصفحة.

زر Set لا يفعل شيئًا. كلا الحقلين مطلوبان. يبلغ الزر Key + value required إذا كان أي منهما فارغًا.

تم رفض المفتاح. الأحرف الصغيرة والشرطات والنقاط والمسافات غير مسموحة. api-key و Api_Key كليهما فشل؛ API_KEY ينجح.

Copy لم تضع أي شيء على الحافظة. بعض المتصفحات تحظر عمليات كتابة الحافظة على تبويب غير نشط. انقر على الصفحة أولاً، ثم انقر فوق Copy مرة أخرى.

المكان الذي تذهب إليه بعد ذلك

هل تحتاج إلى مساعدة إضافية؟

راسلنا على البريد الإلكتروني support@kapsulehost.com أو افتح محادثة في KPanel.

فتح KPanel
تخزين أسرار التطبيق للموقع