التقط الأسلوب السيّئ والثغرات الأمنية الخطيرة آليًّا — قبل وصولها إلى main.
الوحدة 7 · البوابات التي تجعل شيفرة الذكاء الاصطناعي آمنةً للشحن.
متوسّط الجودة والأمان يتضمّن مختبرًا ~50 دقيقة.env ومتغيّرات البيئةالمتطلبات المسبقة: الوحدة 6 — خزنة مقتطفاتٍ مُختبَرة. تتّكئ هذه الوحدة على مختبر DevOps لسلسلة أدوات الأمان الأعمق.
يكتب الذكاء الاصطناعي بأيّ أسلوبٍ يحلو له هذه اللحظة. المدقّق (ESLint) يلتقط العلل المحتملة والأنماط السيّئة؛ والمُنسّق (Prettier) يجعل كل ملفٍّ يبدو متطابقًا. معًا ينهيان جدل الأسلوب ويُظهران الأخطاء الحقيقية آليًّا.
| الأداة | تلتقط |
|---|---|
| ESLint | المتغيّرات غير المستخدمة، الأنماط غير الآمنة، العلل المحتملة، الواجهات الممنوعة. |
| Prettier | التنسيق — التباعد، الاقتباسات، طول السطر — مُطبَّقًا بانتظام. |
| فحص الأنواع (tsc) | عدم تطابق الأنواع قبل تشغيل الشيفرة أصلًا. |
اربط npm run lint وnpm run format. الآن «هل هذا نظيف؟» أمرٌ لا رأي — ومخرجات الذكاء الاصطناعي تُطبَّع إلى معيارك كل مرّة.
الثغرة رقم 1 في شيفرة الذكاء الاصطناعي: مفتاح API أو كلمة مرور مكتوبة صراحةً، مُودَعةً بمرح. الأسرار مكانها متغيّرات البيئة، مُحمَّلةً من ملف .env لا يُودَع أبدًا (ملف .gitignore من الوحدة 4 يمنعه بالفعل).
إن دخل سرٌّ إيداعًا يومًا، فهو في تاريخ Git حتى بعد حذفه — افترضه مكشوفًا وبدّله. لهذا تهمّ عادة .env وفحص الأسرار قبل الدفع، لا بعده.
يُحسّن المساعد لـ«يجعل الميزة تعمل»، لا لـ«آمنة». هذه هي المشتبه بهم المعتادون — تعلّم رصدهم في كل تغيير:
| الثغرة | الإصلاح |
|---|---|
| لا تحقّق من المدخلات (يثق بأيّ شيءٍ يرسله العميل) | تحقّق وطهّر كل مدخلٍ عند حدود الـAPI. |
| حقن SQL/أوامر من استعلاماتٍ مبنيّةٍ بالنصوص | استخدم استعلاماتٍ مُعامَلة / الـORM، لا وصل النصوص أبدًا. |
| أسرارٌ مكتوبةٌ صراحةً | متغيّرات البيئة (أعلاه). |
CORS متساهلٌ (*) أو غياب فحوص المصادقة | قيّد المصادر؛ تحقّق من الصلاحيات في كل مسارٍ محمي. |
| تسريب الداخليّات في رسائل الأخطاء | أعِد أخطاءً عامّة للعملاء؛ سجّل التفاصيل على الخادم. |
سلسلة أدوات DevSecOps الكاملة — فحص الاعتماديات، SAST، فحص الحاويات — مغطّاةٌ في مختبر DevOps. هنا نبني العادات ونضيف الأساسيات للخزنة.
فحصٌ عليك تذكّر تشغيله فحصٌ ستنساه. حوّل التدقيق والتنسيق والاختبارات وفحص الأسرار إلى بوابةٍ آلية — مثاليًّا خُطّاف ما-قبل-الإيداع الآن، وفحص CI في الوحدة 9 — كي لا يستقرّ شيءٌ دون المستوى.
الأتمتة تلتقط الميكانيكيّ؛ ومراجعتك للتغيير (الوحدة 4) تلتقط المقصد والمنطق. أبقِ الاثنين. الذكاء الاصطناعي يقترح؛ والبوابات وأنت تقرّرون.
ستضيف تدقيقًا وتنسيقًا، وتنقل أيّ سرٍّ إلى .env، وتضيف تحقّقًا من المدخلات لنقطة الإنشاء، وتفحص الاعتماديات — مصلحًا مشكلةً حقيقيةً واحدة على الأقل.
مستودع snippet-vault المُختبَر من الوحدة 6.
اطلب من المساعد إعداد ESLint + Prettier مع npm run lint وnpm run format. شغّلهما؛ راجع وأودِع الإعداد وأيّ إصلاحاتٍ تلقائية.
اعثر على أيّ إعدادٍ مكتوبٍ صراحةً (روابط، رموز). انقلها إلى .env (مُتجاهَل) وأضِف .env.example مُودَعًا. أكّد أن .env غير متتبَّع: git status يجب ألّا يُظهره أبدًا.
راجع التغيير؛ شغّل الاختبارات؛ أودِع.
أصلِح ما يمكن إصلاحه بأمان (npm audit fix)، ودوّن ما تبقّى. شغّل اختباراتك ثانيةً للتأكّد من عدم كسر شيء.
في REFLECTION.md: أيّ ثغرةٍ أمنية وجدتها وأصلحتها فعلًا، وأين كان سرٌّ أو مدخلٌ غير متحقَّقٍ مختبئًا؟ أودِعه.
مستودع snippet-vault. تحقّق من نفسك:
npm run lint ينجح؛ والتنسيق متّسق.env مُتجاهَل، و.env.example مُودَعPOST /snippets يتحقّق من المدخلات، مع اختباراتREFLECTION.md يسمّي الثغرة التي أصلحتها| المصطلح | المعنى المبسّط |
|---|---|
| المدقّق (Linter) | أداةٌ تُعلِّم على العلل المحتملة والأنماط السيّئة. |
| المُنسّق (Formatter) | أداةٌ تعيد كتابة الشيفرة بأسلوبٍ موحّد. |
| متغيّر البيئة | إعدادٌ يُقدَّم خارج الشيفرة، مثلًا من .env. |
| الحقن (Injection) | مدخل مهاجِمٍ يصير استعلامًا/أمرًا قابلًا للتنفيذ. |
| بوابة الجودة | فحصٌ آليٌّ يجب أن ينجح قبل استقرار الشيفرة. |
بوابات جودةٍ آلية — تدقيق، تنسيق، تحقّق، نظافة أسرار، فحص اعتماديات — مع إصلاحٍ حقيقيٍّ لثغرةٍ حقيقية. شيفرتك المكتوبة بالذكاء الاصطناعي صارت لا تعمل ومُختبَرة فحسب، بل نظيفةً وآمنة.
التالي: الوحدة 8 — حوسبة التطبيق في حاويات. نغلّف الخزنة لتعمل بالمثل في أيّ مكان — قاتلين «يعمل على جهازي» — بـDocker وCompose، عابرين مباشرةً إلى مختبر DevOps.