FixVibe

// docs / security guides / claude code checklist

قائمة فحص أمان Claude Code: 26 عنصرًا

Claude Code (وكيل Anthropic CLI) ينشئ قواعد تعليمات برمجية كاملة عبر أوامر الشرطة المائلة، ويدير إعادة هيكلة الملفات المتعددة، ويقرأ الملفات /writes من خلال bash. تستهدف قائمة التحقق هذه المخاطر المحددة لـ Claude Code: لا توجد سياسات أمان افتراضية، ونادرًا ما تتم إضافة تحديد المعدل، <code>.claude/CLAUDE.md</code> كملف حاجز الأمان الخاص بك، وخطر الالتزام <code>.env</code> أو الرموز المميزة المخزنة مؤقتًا. 26 عنصرًا عبر الأسرار وقاعدة البيانات والمصادقة والرؤوس والنشر وClaude Code-المشاكل المحددة.

PRE = النشر المسبق (تدقيق المصدر). DEPLOY = في وقت النشر. POST = التحقق بعد النشر. تشير العناصر إلى FixVibe وتحقق من المعرفات في النموذج category.check-id عند الاقتضاء.

الأسرار ومفاتيح API (5 عناصر)

Claude Code يقرأ أشجار المصدر بأكملها ويخرج الملفات بأكملها. الأسرار في سياقك تصبح أسرارًا في المخرجات.

  1. PRE — Create .claude/CLAUDE.md with security policies. أضف: "Security Rules: لا تقم مطلقًا بتضمين مفاتيح service_role في حزم العميل. قم دائمًا بتوجيه العمليات الحساسة من خلال نقاط النهاية الخاصة بالخادم فقط. تأكد من أن NEXT_PUBLIC_* env vars تحتوي على قيم آمنة فقط (لا توجد مفاتيح ولا رموز مميزة)." Claude Code يقرأ .claude/CLAUDE.md لتوجيهات المشروع.
  2. PRE — Ensure .env.local is in .gitignore. Claude Code قد يتم تنفيذ .env.local عن طريق الخطأ أثناء عملية إعادة البناء. قم بتشغيل git ls-files .env* للتحقق مما تم تعقبه. إذا كان .env.local موجودًا، فهو مكشوف.
  3. PRE — Audit generated API routes for env-var verification. Claude Code ينسى أحيانًا التحقق من وجود process.env.SECRET من جانب الخادم قبل استخدامه. يجب أن تفشل المسارات بسرعة إذا كان env var مفقودًا، ولا تصل إلى الوضع الافتراضي.
  4. PRE — Check the .claude cache directory. Claude Code يقوم بتخزين سياق المحادثة مؤقتًا في .claude/cache أو .claude/history. لا ينبغي الالتزام بهذه الملفات. أضف .claude/ إلى .gitignore.
  5. POST — Run secrets.browser-storage on the deployed app. إذا قام Claude Code بتضمين مفتاح، فسيجده الفحص السلبي في الحزمة المقدمة.

التحكم في الوصول إلى قاعدة البيانات (4 عناصر)

يعد Claude Code ممتازًا في إنشاء المخطط، ولكن سياسات RLS تحتاج إلى تعليمات واضحة.

  1. PRE — Instruct Claude Code on RLS in .claude/CLAUDE.md. أضف: "يجب أن تتضمن كل عملية ترحيل ALTER TABLE ... ENABLE ROW LEVEL SECURITY وFORCE ROW LEVEL SECURITY. يجب أن تتحقق كل سياسة من صحة auth.uid() الخاص بالمستخدم."
  2. PRE — Review generated migrations for FORCE ROW LEVEL SECURITY. Claude Code قد تولد ENABLE لكن تنسى FORCE. بدون FORCE، سيتجاوز مالكو الجدول (مشغل الترحيل) RLS. أضفه يدويًا إذا كان مفقودًا.
  3. DEPLOY — Test RLS enforcement after deploy. افتح الاستوديو Supabase، اختر جدولاً، وأكد أن RLS التبديل هو ON. إذا تم استخدام ترحيل Claude Code ENABLE بدون FORCE، فسيظهر التبديل ON ولكن التنفيذ غير مكتمل.
  4. POST — Run the baas.supabase-rls active check. يحاول الكتابة باستخدام المفتاح المجهول. إذا نجحت، فإن RLS غير مكتمل. أضف FORCE إلى الترحيل وإعادة النشر.

المصادقة والجلسات (4 عناصر)

Claude Code يُنشئ تدفقات المصادقة بشكل جيد ولكنه لا يضيف تلقائيًا تحديدًا للمعدل أو يتحقق من جميع مطالبات الرمز المميز من جانب الخادم.

  1. PRE — Mandate server-only auth verification in .claude/CLAUDE.md. أضف: "يجب على كل مسار API يقوم بتغيير البيانات التحقق من المستخدم باستخدام await supabase.auth.getUser() على الخادم. لا تثق أبدًا في getSession() أو المستخدم ID من نص الطلب."
  2. PRE — Check generated auth handlers for token expiry. تحتاج الرموز المميزة للارتباط السحري وإعادة تعيين كلمة المرور إلى فرضها بواسطة الخادم expires_at. اسأل Claude Code: "أضف شيكًا يرفض الرموز المميزة التي مضى عليها أكثر من ساعة واحدة."
  3. PRE — Verify sign-in redirect guards. يجب أن تبدأ عملية إعادة توجيه المعلمة next بـ / وليس //. إضافة إلى .claude/CLAUDE.md: "التحقق من صحة المعلمة next: يجب أن تبدأ بـ /، قم برفضها إذا كانت تبدأ بـ // أو إذا كانت تحتوي على بروتوكول."
  4. POST — Test logout clears cookies. قم بتسجيل الدخول، تسجيل الخروج، فحص التطبيق → ملفات تعريف الارتباط. يجب مسح ملف تعريف ارتباط الجلسة. إذا استمر الأمر، فإن نقطة نهاية تسجيل الخروج لا تدمر الحالة.

HTTP الرؤوس وCSP (3 عناصر)

Claude Code لا يقوم بإنشاء برامج وسيطة بشكل افتراضي إلا إذا طلبت ذلك.

  1. PRE — Add middleware request to .claude/CLAUDE.md. تضمين: "إنشاء src/middleware.ts باستخدام Content-Security-Policy باستخدام رؤوس nonce لكل طلب، وHSTS، وخيارات الإطار X، وخيارات نوع المحتوى X." ثم اطلب Claude Code تنفيذها.
  2. PRE — Verify src/middleware.ts exists and has CSP. مع التخطيط Next.js src/، يجب أن تكون البرامج الوسيطة عند src/middleware.ts، وليس جذر المشروع. تحقق من أن الرأس CSP يتضمن 'strict-dynamic' وnonce.
  3. POST — Run headers.security-headers on the deployed URL. يُبلغ الفحص عن رؤوس مفقودة ويقترح إصلاحات لنظامك الأساسي.

نظافة النشر (4 عناصر)

Claude Code لا يقوم بتكوين النظام الأساسي للنشر الخاص بك - فهذه مسؤوليتك، ولكنها تستحق التحقق.

  1. DEPLOY — Scope env vars per environment in Vercel (or equivalent). الإعدادات → متغيرات البيئة → قم بتعيين كل سر فقط لـ Production. لا تشارك أبدًا sk_live_* مع المعاينة أو التطوير.
  2. DEPLOY — Audit your CI workflow for secret echo. إذا كان GitHub Actions أو CI لديه echo $SECRET في أي مكان، فقم بإزالته. يتم أرشفة سجلات البناء. الأسرار الموجودة في السجلات معرضة للخطر.
  3. DEPLOY — Prefer platform-native secret storage. Vercel إعدادات → متغيرات البيئة مشفرة؛ GitHub أسرار الإجراءات أفضل من لا شيء ولكنها لا تتطابق مع مساحة التخزين الأصلية للنظام الأساسي.
  4. POST — Rotate any key that reached a public build. إذا ظهر مفتاح في Vercel معاينة URL أو أي أداة عامة لمدة حتى ثوانٍ، فهذا يعني أنه تم اختراقه. تدوير على الفور.

Claude Code- مشكلات محددة (5 عناصر)

الأنماط الفريدة لبنية Claude Code وسير العمل:

  1. Claude Code forks work into subagents. في المهام الكبيرة، قد ينتج Claude Code مثيلات وكيل فرعي متعددة، كل منها بسياق قاعدة تعليمات برمجية جزئية. إذا كان أحد العملاء الفرعيين يهلوس بنمط آمن سري لا يفعله عميل آخر، فسيظهر عدم الاتساق. قم بمراجعة الفرق النهائي بعناية.
  2. Bash operations are unverified. Claude Code ينفذ أوامر bash مباشرة. يعد git commit -m "fix" أمرًا ملائمًا، ولكن إذا كان دليل العمل يحتوي على ملف .env ويتضمنه الكرة الأرضية، فإنه يلتزم. قم دائمًا بمراجعة git diff --cached قبل تنفيذ Claude Code.
  3. Context window boundaries create gaps. إذا كانت قاعدة التعليمات البرمجية الخاصة بك كبيرة، فقد يتم تقسيم سياق Claude Code عبر نوافذ متعددة. قد تختلف معالجة .env.local لإحدى النوافذ عن تلك الموجودة في نافذة أخرى. قم بفرض السياسة في .claude/CLAUDE.md وتحقق من الإخراج.
  4. Rate-limiting is almost never added without asking. Claude Code يُنشئ العمل CRUD ولكن نادرًا ما يتضمن رؤوسًا تحدد المعدل أو منطق التراجع الأسي. اطلب ذلك صراحةً في .claude/CLAUDE.md.
  5. .claude/CLAUDE.md is read but not enforced. Claude Code يقرأ .claude/CLAUDE.md الخاص بك كتلميح، وليس كقيد. إذا تعارض التلميح مع المهمة، فقد يتجاهله Claude Code. قم بمراجعة الإخراج دائمًا.

الخطوات التالية

تحقق من general vibe coding security checklist بحثًا عن 44 عنصرًا مشتركًا للأدوات، ثم راجع step-by-step hardening للتعرف على أنماط وقت النشر. إذا كنت تستخدم أيضًا Cursor، فاطلع على Cursor security checklist.

// scan your app

كفّ عن القراءة. ابدأ بإيجاد الثغرات في تطبيقك.

أدخل URL — FixVibe يُجري كل فحص سلبي من هذا الدليل بالإضافة إلى أكثر من 200 فحص آخر في أقل من دقيقة. Free، بدون تثبيت، بدون بطاقة.

  • Free الطبقة — 3 عمليات مسح/شهر، بدون بطاقة.
  • عمليات الفحص السلبي ضد أي URL — لا حاجة للتحقق من المجال.
  • تم ضبطه على Cursor، Claude Code، Lovable، Bolt، v0، Replit.
  • Coding-agent prompts for code/config findings, plus operator steps for DNS/provider fixes.
قائمة فحص أمان Claude Code: 26 عنصرًا — Docs · FixVibe