التشفير والتجزئة والأسرار
التشفير والتجزئة والأسرار
لا يخفي NestJS تشفير Node.js خلف تجريدات غير ضرورية. تستخدم وحدة crypto للتشفير، ومكتبات تجزئة كلمات المرور المعروفة للاعتمادات، ووحدات الإعداد أو مديري الأسرار لمواد المفاتيح.
الفكرة الأساسية
تدور هذه الميزة حول التحكم في كيفية تنظيم التطبيق وسلوكه وقت التشغيل. النقاط التالية هي ما يجب أن يعرفه المطور قبل استخدامها في مشروع حقيقي:
- جزّئ كلمات المرور باستخدام Argon2 أو bcrypt، لا باستخدام تجزئات سريعة عامة مثل SHA-256 وحدها.
- التشفير قابل للعكس ويتطلب إدارة مفاتيح؛ أما التجزئة فهي باتجاه واحد وتستخدم للتحقق.
- استخدم أملاحاً عشوائية ومعاملات حديثة لتجزئة كلمات المرور.
- احتفظ بمفاتيح التشفير خارج المستودع ودوّرها ضمن عملية مخططة.
- استخدم مقارنة بزمن ثابت لتجزئات الرموز وفحوص التوقيع.
مثال عملي
يوضح المثال التالي الشكل العملي للفكرة داخل مشروع NestJS. ليست الغاية حفظ الكود، بل فهم مكانه في المعمارية:
قائمة تطبيق إنتاجية
- استخدم Argon2id أو bcrypt لكلمات مرور المستخدمين.
- لا تسجل الرموز أو كلمات المرور أو المفاتيح الخاصة أو البيانات المفكوكة.
- تحقق من أطوال الأسرار المطلوبة أثناء الإقلاع.
- خطط لتدوير المفاتيح قبل أول حادث إنتاجي.
الخلاصة
يغطي هذا الدرس جزءاً متقدماً من NestJS يجب فهمه عند بناء تطبيقات مؤسسية. ركّز على الحدود الواضحة، والسلوك القابل للاختبار، واختيار الأداة المناسبة للسياق بدلاً من استخدام كل ميزة في كل مكان.