// 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 يقرأ أشجار المصدر بأكملها ويخرج الملفات بأكملها. الأسرار في سياقك تصبح أسرارًا في المخرجات.
- PRE — Create
.claude/CLAUDE.mdwith security policies. أضف: "Security Rules: لا تقم مطلقًا بتضمين مفاتيح service_role في حزم العميل. قم دائمًا بتوجيه العمليات الحساسة من خلال نقاط النهاية الخاصة بالخادم فقط. تأكد من أن NEXT_PUBLIC_* env vars تحتوي على قيم آمنة فقط (لا توجد مفاتيح ولا رموز مميزة)." Claude Code يقرأ.claude/CLAUDE.mdلتوجيهات المشروع. - PRE — Ensure
.env.localis in.gitignore. Claude Code قد يتم تنفيذ.env.localعن طريق الخطأ أثناء عملية إعادة البناء. قم بتشغيلgit ls-files .env*للتحقق مما تم تعقبه. إذا كان.env.localموجودًا، فهو مكشوف. - PRE — Audit generated API routes for env-var verification. Claude Code ينسى أحيانًا التحقق من وجود
process.env.SECRETمن جانب الخادم قبل استخدامه. يجب أن تفشل المسارات بسرعة إذا كان env var مفقودًا، ولا تصل إلى الوضع الافتراضي. - PRE — Check the
.claudecache directory. Claude Code يقوم بتخزين سياق المحادثة مؤقتًا في.claude/cacheأو.claude/history. لا ينبغي الالتزام بهذه الملفات. أضف.claude/إلى.gitignore. - POST — Run secrets.browser-storage on the deployed app. إذا قام Claude Code بتضمين مفتاح، فسيجده الفحص السلبي في الحزمة المقدمة.
التحكم في الوصول إلى قاعدة البيانات (4 عناصر)
يعد Claude Code ممتازًا في إنشاء المخطط، ولكن سياسات RLS تحتاج إلى تعليمات واضحة.
- PRE — Instruct Claude Code on RLS in
.claude/CLAUDE.md. أضف: "يجب أن تتضمن كل عملية ترحيلALTER TABLE ... ENABLE ROW LEVEL SECURITYوFORCE ROW LEVEL SECURITY. يجب أن تتحقق كل سياسة من صحةauth.uid()الخاص بالمستخدم." - PRE — Review generated migrations for
FORCE ROW LEVEL SECURITY. Claude Code قد تولدENABLEلكن تنسىFORCE. بدونFORCE، سيتجاوز مالكو الجدول (مشغل الترحيل) RLS. أضفه يدويًا إذا كان مفقودًا. - DEPLOY — Test RLS enforcement after deploy. افتح الاستوديو Supabase، اختر جدولاً، وأكد أن RLS التبديل هو ON. إذا تم استخدام ترحيل Claude Code
ENABLEبدونFORCE، فسيظهر التبديل ON ولكن التنفيذ غير مكتمل. - POST — Run the baas.supabase-rls active check. يحاول الكتابة باستخدام المفتاح المجهول. إذا نجحت، فإن RLS غير مكتمل. أضف
FORCEإلى الترحيل وإعادة النشر.
المصادقة والجلسات (4 عناصر)
Claude Code يُنشئ تدفقات المصادقة بشكل جيد ولكنه لا يضيف تلقائيًا تحديدًا للمعدل أو يتحقق من جميع مطالبات الرمز المميز من جانب الخادم.
- PRE — Mandate server-only auth verification in
.claude/CLAUDE.md. أضف: "يجب على كل مسار API يقوم بتغيير البيانات التحقق من المستخدم باستخدامawait supabase.auth.getUser()على الخادم. لا تثق أبدًا فيgetSession()أو المستخدم ID من نص الطلب." - PRE — Check generated auth handlers for token expiry. تحتاج الرموز المميزة للارتباط السحري وإعادة تعيين كلمة المرور إلى فرضها بواسطة الخادم
expires_at. اسأل Claude Code: "أضف شيكًا يرفض الرموز المميزة التي مضى عليها أكثر من ساعة واحدة." - PRE — Verify sign-in redirect guards. يجب أن تبدأ عملية إعادة توجيه المعلمة
nextبـ/وليس//. إضافة إلى.claude/CLAUDE.md: "التحقق من صحة المعلمةnext: يجب أن تبدأ بـ/، قم برفضها إذا كانت تبدأ بـ//أو إذا كانت تحتوي على بروتوكول." - POST — Test logout clears cookies. قم بتسجيل الدخول، تسجيل الخروج، فحص التطبيق → ملفات تعريف الارتباط. يجب مسح ملف تعريف ارتباط الجلسة. إذا استمر الأمر، فإن نقطة نهاية تسجيل الخروج لا تدمر الحالة.
HTTP الرؤوس وCSP (3 عناصر)
Claude Code لا يقوم بإنشاء برامج وسيطة بشكل افتراضي إلا إذا طلبت ذلك.
- PRE — Add middleware request to
.claude/CLAUDE.md. تضمين: "إنشاءsrc/middleware.tsباستخدام Content-Security-Policy باستخدام رؤوس nonce لكل طلب، وHSTS، وخيارات الإطار X، وخيارات نوع المحتوى X." ثم اطلب Claude Code تنفيذها. - PRE — Verify
src/middleware.tsexists and has CSP. مع التخطيط Next.jssrc/، يجب أن تكون البرامج الوسيطة عندsrc/middleware.ts، وليس جذر المشروع. تحقق من أن الرأس CSP يتضمن'strict-dynamic'وnonce. - POST — Run headers.security-headers on the deployed URL. يُبلغ الفحص عن رؤوس مفقودة ويقترح إصلاحات لنظامك الأساسي.
نظافة النشر (4 عناصر)
Claude Code لا يقوم بتكوين النظام الأساسي للنشر الخاص بك - فهذه مسؤوليتك، ولكنها تستحق التحقق.
- DEPLOY — Scope env vars per environment in Vercel (or equivalent). الإعدادات → متغيرات البيئة → قم بتعيين كل سر فقط لـ Production. لا تشارك أبدًا
sk_live_*مع المعاينة أو التطوير. - DEPLOY — Audit your CI workflow for secret echo. إذا كان GitHub Actions أو CI لديه
echo $SECRETفي أي مكان، فقم بإزالته. يتم أرشفة سجلات البناء. الأسرار الموجودة في السجلات معرضة للخطر. - DEPLOY — Prefer platform-native secret storage. Vercel إعدادات → متغيرات البيئة مشفرة؛ GitHub أسرار الإجراءات أفضل من لا شيء ولكنها لا تتطابق مع مساحة التخزين الأصلية للنظام الأساسي.
- POST — Rotate any key that reached a public build. إذا ظهر مفتاح في Vercel معاينة URL أو أي أداة عامة لمدة حتى ثوانٍ، فهذا يعني أنه تم اختراقه. تدوير على الفور.
Claude Code- مشكلات محددة (5 عناصر)
الأنماط الفريدة لبنية Claude Code وسير العمل:
- Claude Code forks work into subagents. في المهام الكبيرة، قد ينتج Claude Code مثيلات وكيل فرعي متعددة، كل منها بسياق قاعدة تعليمات برمجية جزئية. إذا كان أحد العملاء الفرعيين يهلوس بنمط آمن سري لا يفعله عميل آخر، فسيظهر عدم الاتساق. قم بمراجعة الفرق النهائي بعناية.
- Bash operations are unverified. Claude Code ينفذ أوامر bash مباشرة. يعد
git commit -m "fix"أمرًا ملائمًا، ولكن إذا كان دليل العمل يحتوي على ملف.envويتضمنه الكرة الأرضية، فإنه يلتزم. قم دائمًا بمراجعةgit diff --cachedقبل تنفيذ Claude Code. - Context window boundaries create gaps. إذا كانت قاعدة التعليمات البرمجية الخاصة بك كبيرة، فقد يتم تقسيم سياق Claude Code عبر نوافذ متعددة. قد تختلف معالجة
.env.localلإحدى النوافذ عن تلك الموجودة في نافذة أخرى. قم بفرض السياسة في.claude/CLAUDE.mdوتحقق من الإخراج. - Rate-limiting is almost never added without asking. Claude Code يُنشئ العمل CRUD ولكن نادرًا ما يتضمن رؤوسًا تحدد المعدل أو منطق التراجع الأسي. اطلب ذلك صراحةً في
.claude/CLAUDE.md. .claude/CLAUDE.mdis 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.
