كل الوحدات التدقيق الأسرار الثغرات البوابة English

بوابات الجودة والأمان

التقط الأسلوب السيّئ والثغرات الأمنية الخطيرة آليًّا — قبل وصولها إلى main.

الوحدة 7 · البوابات التي تجعل شيفرة الذكاء الاصطناعي آمنةً للشحن.

متوسّط الجودة والأمان يتضمّن مختبرًا ~50 دقيقة

ماذا ستتعلّم

  • أتمتة الاتّساق بـمدقّق ومُنسّق
  • إبقاء الأسرار خارج الشيفرة بـ.env ومتغيّرات البيئة
  • التعرّف على الثغرات الأمنية التي يكتبها المساعد كثيرًا
  • إضافة التحقّق من المدخلات — أرخص حارسٍ وأعلاه قيمة
  • تحويل هذه الفحوص إلى بوابةٍ آلية قبل استقرار الشيفرة
  • مختبر عملي: أضِف تدقيقًا وتنسيقًا، أصلِح مشكلةً أمنيةً حقيقية، وافحص الاعتماديات

المتطلبات المسبقة: الوحدة 6 — خزنة مقتطفاتٍ مُختبَرة. تتّكئ هذه الوحدة على مختبر DevOps لسلسلة أدوات الأمان الأعمق.

التدقيق والتنسيق

يكتب الذكاء الاصطناعي بأيّ أسلوبٍ يحلو له هذه اللحظة. المدقّق (ESLint) يلتقط العلل المحتملة والأنماط السيّئة؛ والمُنسّق (Prettier) يجعل كل ملفٍّ يبدو متطابقًا. معًا ينهيان جدل الأسلوب ويُظهران الأخطاء الحقيقية آليًّا.

الأداةتلتقط
ESLintالمتغيّرات غير المستخدمة، الأنماط غير الآمنة، العلل المحتملة، الواجهات الممنوعة.
Prettierالتنسيق — التباعد، الاقتباسات، طول السطر — مُطبَّقًا بانتظام.
فحص الأنواع (tsc)عدم تطابق الأنواع قبل تشغيل الشيفرة أصلًا.

أمرٌ واحد، شيفرةٌ نظيفة

اربط npm run lint وnpm run format. الآن «هل هذا نظيف؟» أمرٌ لا رأي — ومخرجات الذكاء الاصطناعي تُطبَّع إلى معيارك كل مرّة.

الأسرار تبقى خارج الشيفرة

الثغرة رقم 1 في شيفرة الذكاء الاصطناعي: مفتاح API أو كلمة مرور مكتوبة صراحةً، مُودَعةً بمرح. الأسرار مكانها متغيّرات البيئة، مُحمَّلةً من ملف .env لا يُودَع أبدًا (ملف .gitignore من الوحدة 4 يمنعه بالفعل).

# .env (gitignored — never committed) DATABASE_URL=postgres://localhost/snippets API_TOKEN=super-secret-value # .env.example (committed — documents the shape, no real values) DATABASE_URL= API_TOKEN=

مُودَعٌ مرّةً = مسرَّبٌ للأبد

إن دخل سرٌّ إيداعًا يومًا، فهو في تاريخ Git حتى بعد حذفه — افترضه مكشوفًا وبدّله. لهذا تهمّ عادة .env وفحص الأسرار قبل الدفع، لا بعده.

ثغراتٌ يحبّ الذكاء الاصطناعي كتابتها

يُحسّن المساعد لـ«يجعل الميزة تعمل»، لا لـ«آمنة». هذه هي المشتبه بهم المعتادون — تعلّم رصدهم في كل تغيير:

الثغرةالإصلاح
لا تحقّق من المدخلات (يثق بأيّ شيءٍ يرسله العميل)تحقّق وطهّر كل مدخلٍ عند حدود الـAPI.
حقن SQL/أوامر من استعلاماتٍ مبنيّةٍ بالنصوصاستخدم استعلاماتٍ مُعامَلة / الـORM، لا وصل النصوص أبدًا.
أسرارٌ مكتوبةٌ صراحةًمتغيّرات البيئة (أعلاه).
CORS متساهلٌ (*) أو غياب فحوص المصادقةقيّد المصادر؛ تحقّق من الصلاحيات في كل مسارٍ محمي.
تسريب الداخليّات في رسائل الأخطاءأعِد أخطاءً عامّة للعملاء؛ سجّل التفاصيل على الخادم.

تعمّق في مختبر DevOps

سلسلة أدوات DevSecOps الكاملة — فحص الاعتماديات، SAST، فحص الحاويات — مغطّاةٌ في مختبر DevOps. هنا نبني العادات ونضيف الأساسيات للخزنة.

اجعلها بوابة

فحصٌ عليك تذكّر تشغيله فحصٌ ستنساه. حوّل التدقيق والتنسيق والاختبارات وفحص الأسرار إلى بوابةٍ آلية — مثاليًّا خُطّاف ما-قبل-الإيداع الآن، وفحص CI في الوحدة 9 — كي لا يستقرّ شيءٌ دون المستوى.

# the gate, as one script npm run lint # style + likely bugs npm run format # consistent formatting npm test # behavior still correct npm audit # known-vulnerable dependencies

المراجعة البشرية بوابةٌ أيضًا

الأتمتة تلتقط الميكانيكيّ؛ ومراجعتك للتغيير (الوحدة 4) تلتقط المقصد والمنطق. أبقِ الاثنين. الذكاء الاصطناعي يقترح؛ والبوابات وأنت تقرّرون.

مختبر عملي: أضِف البوابات، أصلِح ثغرة

ستضيف تدقيقًا وتنسيقًا، وتنقل أيّ سرٍّ إلى .env، وتضيف تحقّقًا من المدخلات لنقطة الإنشاء، وتفحص الاعتماديات — مصلحًا مشكلةً حقيقيةً واحدة على الأقل.

ما تحتاجه

مستودع snippet-vault المُختبَر من الوحدة 6.

1

افرَع وأضِف تدقيقًا وتنسيقًا

git checkout -b feature/quality-gates

اطلب من المساعد إعداد ESLint + Prettier مع npm run lint وnpm run format. شغّلهما؛ راجع وأودِع الإعداد وأيّ إصلاحاتٍ تلقائية.

2

انقل الأسرار إلى .env

اعثر على أيّ إعدادٍ مكتوبٍ صراحةً (روابط، رموز). انقلها إلى .env (مُتجاهَل) وأضِف .env.example مُودَعًا. أكّد أن .env غير متتبَّع: git status يجب ألّا يُظهره أبدًا.

3

أضِف التحقّق من المدخلات

Add validation to POST /snippets: title required (non-empty, max 200), language required, code max length. Reject invalid input with 400 and a clear message. Add tests for the new validation rules.

راجع التغيير؛ شغّل الاختبارات؛ أودِع.

4

افحص الاعتماديات

npm audit

أصلِح ما يمكن إصلاحه بأمان (npm audit fix)، ودوّن ما تبقّى. شغّل اختباراتك ثانيةً للتأكّد من عدم كسر شيء.

5

ادمج وتأمّل

git add . git commit -m "Add lint/format, env secrets, input validation" git checkout main && git merge feature/quality-gates

في REFLECTION.md: أيّ ثغرةٍ أمنية وجدتها وأصلحتها فعلًا، وأين كان سرٌّ أو مدخلٌ غير متحقَّقٍ مختبئًا؟ أودِعه.

ما الذي تسلّمه

مستودع snippet-vault. تحقّق من نفسك:

  • npm run lint ينجح؛ والتنسيق متّسق
  • لا أسرار في الشيفرة؛ .env مُتجاهَل، و.env.example مُودَع
  • POST /snippets يتحقّق من المدخلات، مع اختبارات
  • REFLECTION.md يسمّي الثغرة التي أصلحتها

مسرد مصغّر

المصطلحالمعنى المبسّط
المدقّق (Linter)أداةٌ تُعلِّم على العلل المحتملة والأنماط السيّئة.
المُنسّق (Formatter)أداةٌ تعيد كتابة الشيفرة بأسلوبٍ موحّد.
متغيّر البيئةإعدادٌ يُقدَّم خارج الشيفرة، مثلًا من .env.
الحقن (Injection)مدخل مهاجِمٍ يصير استعلامًا/أمرًا قابلًا للتنفيذ.
بوابة الجودةفحصٌ آليٌّ يجب أن ينجح قبل استقرار الشيفرة.

الخلاصة وما التالي

صار لديك الآن

بوابات جودةٍ آلية — تدقيق، تنسيق، تحقّق، نظافة أسرار، فحص اعتماديات — مع إصلاحٍ حقيقيٍّ لثغرةٍ حقيقية. شيفرتك المكتوبة بالذكاء الاصطناعي صارت لا تعمل ومُختبَرة فحسب، بل نظيفةً وآمنة.

التالي: الوحدة 8 — حوسبة التطبيق في حاويات. نغلّف الخزنة لتعمل بالمثل في أيّ مكان — قاتلين «يعمل على جهازي» — بـDocker وCompose، عابرين مباشرةً إلى مختبر DevOps.

بوابات الجودة والأمان

الأهداف التدقيق الأسرار الثغرات البوابة المختبر العملي المسرد الخلاصة