Claude Code ترك أسرارًا في 1122 ملفًا عامًا على GitHub بسبب «Don't ask again»
عندما تضغط على «Don't ask again» في Claude Code، يسجّل الوكيل الإذن في ملف إعدادات المشروع. وإذا كان الأمر يتضمن رمز وصول أو كلمة مرور، فإنها تُحفظ معه في الملف. وجد محللو Qodo أسرارًا من هذا النوع في 1122 ملف إعدادات عامًا على GitHub. أصبحت إعدادات الوكيل شيفرة بحد ذاتها، وينبغي مراجعتها مثل أي إيداع آخر في المستودع.
معالج بواسطة الذكاء الاصطناعي من Qodo Blog؛ بتحرير Hamidun News
تطلب من الوكيل استدعاء واجهة API، فيطلب إذنك لتنفيذ الأمر. وبعد أن تتعب من الضغط على «Yes» للمرة العاشرة، تختار «Don't ask again». خيار مريح. لكن Qodo اكتشفت أن لهذا الزر أثرًا جانبيًا: عثرت على أسرار في 1122 ملف إعدادات عامًا على GitHub، وكان Claude Code نفسه هو من حفظها هناك.
كيف يصل السر إلى ملف الإعدادات
لدى Claude Code نظام أذونات. عندما توافق على «عدم السؤال مجددًا» بشأن أمر محدد، يضيف الوكيل قاعدة إلى ملف إعدادات داخل مجلد .claude. وهناك ملف settings.json المشترك، الذي يُودَع عادةً مع المشروع، وملف settings.local.json المحلي للقواعد الشخصية.
المشكلة أن القاعدة تسجّل الأمر حرفيًا، بكل وسائطه. لنفترض أنك طلبت من الوكيل إرسال طلب باستخدام curl، وأدرجت رمز الوصول مباشرةً في ترويسة الطلب. سيحفظ الوكيل السطر كاملًا، وسيظهر الرمز في الملف بنص صريح. هذا مثال لتوضيح الآلية، وليس اقتباسًا من التقرير. لكن المنطق هو نفسه: لم تتعمد «حفظ» أي شيء، بل ضغطت على زر لتسهيل العمل.
بعد ذلك، تأخذ العادات البشرية المعتادة مجراها. يودع أحدهم مجلد .claude كاملًا لأنه يحتوي على «إعدادات مفيدة للفريق». ويصبح المستودع عامًا، فينكشف السر للجميع.
لماذا ليست مسألة بسيطة
اعتدنا أن تتسرب الأسرار من ملفات .env، أو إعدادات الخدمات السحابية، أو السلاسل النصية المثبتة مباشرةً في الشيفرة. لم تكن ملفات إعدادات الوكيل ضمن هذه الصورة؛ فقد كان يُنظر إليها بوصفها «تفضيلات شخصية للمحرر»، مثل سمة الواجهة. لكنها تتضمن بالفعل أذونات تنفيذ: ما يُسمح للوكيل بتشغيله من دون سؤال. وهذا يعني أن للملف دورين في آن واحد: سياسة أمنية، ومخزن محتمل للأسرار.
وهناك نقطة أهم. هذه الملفات لا يكتبها إنسان، بل أداة، استجابةً لنقرة، لا لقرار واعٍ بـ«حفظ الإعدادات». لا أحد يعيد قراءة ما لم يكتبه بنفسه. ومن هنا جاءت خلاصة Qodo: ينبغي مراجعة إعدادات الوكيل مثل الشيفرة.
ما الذي يمكنك فعله الآن
- افحص مستودعاتك. ابحث داخل .claude/ عن سلاسل تشبه المفاتيح ورموز الوصول وكلمات المرور، بما في ذلك سجل git. لا يكفي حذف الملف من أحدث إيداع، فالسجل يبقى موجودًا.
- استبدل كل الأسرار التي تجدها. إذا ظهر رمز وصول ولو مرة واحدة في مستودع عام، فاعتبره مخترقًا.
- استبعد الملف المحلي. يجب أن يكون settings.local.json ضمن .gitignore. لا تفترض أن أحدًا سبق أن فعل ذلك.
- أزل الأسرار من الأوامر نفسها. مرّرها عبر متغيرات البيئة أو مدير للأسرار، فتحتوي القاعدة على اسم المتغير بدلًا من قيمته.
- فعّل الفحوص الآلية. استخدم أداة لفحص الأسرار في pre-commit وفي CI، وفعّل أيضًا حماية الدفع، أو push protection، على GitHub. أضف .claude إلى CODEOWNERS حتى لا تمر تغييرات أذونات الوكيل من دون مراجعة.
- لا تفرط في استخدام «Don't ask again». من الأفضل تأكيد الأوامر التي تتضمن وسائط حساسة في كل مرة، أو كتابة قاعدة محددة النطاق يدويًا.
الحدود والتحفظات
نشرت التقريرَ شركة Qodo، وهي مورّد لأدوات مراجعة الشيفرة. الموضوع يقع في صميم نشاطها، وهذا ينعكس على طريقة عرضه. كذلك، لا يوضح الإعلان عدد الأسرار المكتشفة التي كانت لا تزال صالحة للاستخدام. أما رقم 1122 ملفًا فيمثل ما ظهر في البحث العام، وليس الصورة الكاملة؛ فلم تُحصَ المستودعات الخاصة.
مع ذلك، لا تقتصر المشكلة على منتج واحد. فآلية «تذكّر الأمر» نفسها موجودة في أدوات وكيلة أخرى، وتنطبق عليها الأسئلة ذاتها. ومن المعقول أن نتوقع من مطوري الوكلاء إخفاء القيم التي تبدو كأسرار أو الامتناع عن حفظها، وتحذير المستخدم قبل كتابتها في الملف.
الخلاصة
تنتج الأدوات الوكيلة فئة جديدة من الملفات: إعدادات تُكتب تلقائيًا، وتُنفّذ بصلاحياتك، ويمكن أن تصل بسهولة إلى git. تعامل معها مثل الشيفرة: مراجعة، وفحص للأسرار، و.gitignore. فهذا أقل تكلفة من معالجة تداعيات تسرب مفتاح.
- 12 نوفمبر 2026جنسن هوانغ يتنحى عن منصب الرئيس التنفيذي لـNvidia: الشركة تفقد 1.4 تريليون دولار خلال أسبوعين
- 12 نوفمبر 2026Claude in Chrome يطلب إذنًا لكل نقرة على المواقع المصنّفة ضمن الفئة 3
- 12 نوفمبر 2026AWS Quick يحصل على ستة وكلاء لمديري المنتجات: من شكاوى العملاء إلى المواصفات
- 12 نوفمبر 2026اعتبارًا من 12 نوفمبر: Anthropic تغلق Claude أمام الشركات الروسية، حتى لو كان كيانها القانوني مسجَّلًا في الخارج
أسئلة وأجوبة حول الخبر
ما أبرز التفاصيل حول كيف يصل السر إلى ملف الإعدادات؟
لدى Claude Code نظام أذونات. عندما توافق على «عدم السؤال مجددًا» بشأن أمر محدد، يضيف الوكيل قاعدة إلى ملف إعدادات داخل مجلد .claude. وهناك ملف settings.json المشترك، الذي يُودَع عادةً مع المشروع، وملف settings.local.json المحلي للقواعد الشخصية. المشكلة أن القاعدة تسجّل الأمر حرفيًا، بكل وسائطه. لنفترض أنك طلبت من الوكيل إرسال طلب باستخدام curl، وأدرجت رمز الوصول مباشرةً في ترويسة الطلب. سيحفظ الوكيل السطر كاملًا، وسيظهر الرمز في الملف بنص صريح. هذا مثال لتوضيح الآلية، وليس اقتباسًا من التقرير.
ما أبرز التفاصيل حول لماذا ليست مسألة بسيطة؟
اعتدنا أن تتسرب الأسرار من ملفات .env، أو إعدادات الخدمات السحابية، أو السلاسل النصية المثبتة مباشرةً في الشيفرة. لم تكن ملفات إعدادات الوكيل ضمن هذه الصورة؛ فقد كان يُنظر إليها بوصفها «تفضيلات شخصية للمحرر»، مثل سمة الواجهة. لكنها تتضمن بالفعل أذونات تنفيذ: ما يُسمح للوكيل بتشغيله من دون سؤال. وهذا يعني أن للملف دورين في آن واحد: سياسة أمنية، ومخزن محتمل للأسرار. وهناك نقطة أهم. هذه الملفات لا يكتبها إنسان، بل أداة، استجابةً لنقرة، لا لقرار واعٍ بـ«حفظ الإعدادات». لا أحد يعيد قراءة ما لم يكتبه بنفسه.
ما أبرز التفاصيل حول ما الذي يمكنك فعله الآن؟
افحص مستودعاتك. ابحث داخل .claude/ عن سلاسل تشبه المفاتيح ورموز الوصول وكلمات المرور، بما في ذلك سجل git. لا يكفي حذف الملف من أحدث إيداع، فالسجل يبقى موجودًا. استبدل كل الأسرار التي تجدها. إذا ظهر رمز وصول ولو مرة واحدة في مستودع عام، فاعتبره مخترقًا. استبعد الملف المحلي. يجب أن يكون settings.local.json ضمن .gitignore. لا تفترض أن أحدًا سبق أن فعل ذلك. أزل الأسرار من الأوامر نفسها. مرّرها عبر متغيرات البيئة أو مدير للأسرار، فتحتوي القاعدة على اسم المتغير بدلًا من قيمته. فعّل الفحوص الآلية.
Build & Ship Production AI Agents Without Boilerplate Code
Start your free 72-hour trial at Hamidun Academy (academy.hamidun.com) — interactive lessons on Claude Code & Cursor, live Tech Radar, and production agent templates.
أهم ما في عالم الذكاء الاصطناعي — مرة كل أسبوع
سبع قصص مهمة فعلاً هذا الأسبوع، مختارة بعناية. بلا ضجيج ولا بيانات صحفية.
تم! تحقق من بريدك للتأكيد.