أبقِ الأسرار خارج بيئة العمل، وامنع الوصول إلى الملفات الحساسة. ابدأ بالجمع بين هذين الإجراءين.
وضع القراءة فقط، والموافقات، وتعطيل استخدام البيانات للتدريب تؤدي أغراضًا مختلفة. افحص كل إجراء على حدة لتحديد مدى قدرته على منع الوصول إلى الملفات السرية.
افحص القراءة والتنفيذ والإرسال كلًّا على حدة
أزل الأسرار غير اللازمة من بيئة العمل. فكّر في قاعدة deny لمنع قراءة الملفات الحساسة.
تحقّق ممن يراجع طلبات الموافقة. تجنّب توسيع الحدود باستخدام Full access أو السماح بالتنفيذ خارج بيئة العزل.
افحص شبكة الأوامر، والإرسال إلى النموذج، ووصول المتصفح أو MCP كلًّا على حدة.
راجعنا وثائق OpenAI الخاصة بالصلاحيات والعزل والموافقات والأمان والإعدادات في 8 أكتوبر 2026. يركّز هذا الدليل على الأوامر داخل بيئة عزل محلية. لم يُطبّق مثال الإعدادات على جهاز فعلي، ولم يُختبر إنفاذه عمليًا. لم نغيّر أي إعدادات للجهاز أو الحساب.
المحتويات
1. القراءة فقط والموافقات وإعدادات التدريب
منع تعديل الملفات يختلف عن منع قراءتها.
وضع يقيّد الكتابة. لا يخفي محتوى الملفات القابلة للقراءة باعتبارها أسرارًا.
يحدد مواضع السماح بالتعديل. لكنه لا يحصر القراءة بالضرورة في المواضع نفسها.
| آلية التحكم | ما الذي تتحكم فيه أساسًا؟ | ما الذي لا تضمنه وحدها؟ |
|---|---|---|
| وضع القراءة فقط | إمكانية تعديل الملفات | عدم قراءة الملفات السرية المتاحة |
| سياسة الموافقات | من يراجع الإجراءات التي تتجاوز الحدود | مراجعة بشرية لكل قراءة ضمن النطاق المسموح |
| قواعد منع الوصول إلى الملفات | رفض القراءة والكتابة في المسارات المحددة | حذف المحتوى الذي لُصق سابقًا أو منع الوصول عبر أدوات أخرى |
| قيود شبكة الأوامر | وجهات اتصال الأوامر المعزولة | حجب كل اتصالات النماذج والمصادقة والمتصفحات وMCP والخدمات الأخرى |
| إعدادات التدريب | استخدام البيانات المعالجة لتحسين النماذج من عدمه | عدم معالجة البيانات أو إرسالها |
حتى عند استخدام on-request، يمكن تنفيذ الأوامر ضمن النطاق المسموح دون موافقة إضافية. للمراجعة البشرية، افحص سياسة الموافقات والجهة التي تتلقى طلب المراجعة معًا.
الفرق عند استخدام مراجعة آلية بالذكاء الاصطناعي
approvals_reviewer = "auto_review" يوجّه المراجعة المعنية إلى الذكاء الاصطناعي. ليست هذه مراجعة بشرية، ولا تضيف شرط مراجعة لكل إجراء كان مسموحًا أصلًا.
المصدر: OpenAI: الموافقات وحدود العزل. نناقش التدريب بصورة مستقلة في إعدادات تدريب ChatGPT وCodex والمعلومات السرية.
2. إبقاء الأسرار خارج بيئة العمل
قد يتطلب تعديل واجهة المستخدم الشفرة المصدرية وبيانات وهمية فقط. لا يلزم أن تكون مفاتيح API الخاصة بالإنتاج أو بيانات العملاء أو المستندات العائلية في البيئة نفسها.
نقل الملفات إلى مجلد آخر لا يكفي. إذا ظلت صلاحيات القراءة واسعة، فقد تبقى هذه الملفات قابلة للوصول.
ضع في نسخة العمل ما تحتاج إليه فقط
استخدم مدخلات صغيرة تعيد إنتاج المشكلة بدلًا من بيانات الإنتاج.
ينبغي أن تتضمن أمثلة الإعدادات أسماء الحقول فقط. افحص السجلات والنسخ الاحتياطية والمحفوظات أيضًا.
تحقق من إمكانية الوصول إلى مجلدات أخرى أو المجلد المنزلي أو التخزين المشترك أو التطبيقات المتصلة.
هل تمنع قواعد تجاهل Git القراءة؟
.gitignore يحدد الملفات غير المتتبعة التي ينبغي أن يتجاهلها Git. ولا يلغي صلاحية القراءة في نظام التشغيل. حتى لو كانت أداة البحث تتجاوز ملفًا عادةً، فهذا لا يضمن رفض قراءته عند تحديد مساره مباشرة. كما أن إضافة قاعدة تجاهل لا تؤثر في الملفات التي يتتبعها Git بالفعل. وثائق Git: نطاق gitignore.
التعليمات مقابل المنع المفروض فعليًا
كتابة «لا تقرأ الأسرار» في AGENTS.md قد تكون تعليمات عمل مفيدة، لكنها لا تنشئ وحدها قيود وصول في نظام التشغيل. اجمع بين التعليمات والمنع المفروض فعليًا. راجع احتياطات إدخال المعلومات في أدوات الذكاء الاصطناعي للاطلاع على أمثلة لإخفاء هوية المدخلات.
3. مثال لإعداد منع القراءة
Permission profiles ميزة تجريبية. تحقق من البيئات المدعومة والإعدادات المحددة في الجلسة الحالية قبل استخدامها.
read: القراءةالسماح بقراءة الهدف
write: التعديلالسماح بالكتابة إلى الهدف
deny: المنعيرفض قراءة الهدف والكتابة إليه معًا
انتبه إلى التعارض مع إعدادات العزل القديمة
قد لا تُستخدم Permission profiles عندما تظل الإعدادات القديمة سارية.
افحص الإعدادات المتعارضة وضوابط المسؤول
لا تخلطها بالإعدادات القديمة: default_permissions و [permissions] ليسا معدَّين للاستخدام مع الإعدادات القديمة sandbox_mode أو [sandbox_workspace_write]. عادةً، إذا تضمنت الإعدادات المحمّلة sandbox_mode أو استُخدم عند التشغيل --sandbox، تُستخدم الآلية القديمة. أما ضوابط المسؤول عبر allowed_permission_profiles فهي شرط مستقل.
ما يلي اقتراح توضيحي للإعدادات يضيف منع الوصول إلى الملفات السرية وموافقة بشرية إلى المثال الرسمي المحدود بمساحة العمل. لا تستبدل به إعداداتك الحالية كاملة. افحص دعم الإصدار وقيود المؤسسة ومسارات التنفيذ المطلوبة، ثم اختبره في بيئة وهمية.
موضع الإعداد: إعدادات المستخدم والمشروع
~/.codex/config.toml
.codex/config.toml
تختلف في نطاق التطبيق وشروط التحميل. تُحمّل إعدادات المشروع للمشاريع الموثوقة فقط.
default_permissions = "project-private"
approval_policy = "on-request"
approvals_reviewer = "user"
[permissions.project-private]
extends = ":workspace"
[permissions.project-private.filesystem]
":root" = "deny"
":minimal" = "read"
[permissions.project-private.filesystem.":workspace_roots"]
".env" = "deny"
".env.production" = "deny"
"secrets" = "deny"
[permissions.project-private.network]
enabled = false
ما المسارات التي يشملها هذا المثال؟
يُطبّق على مساحة العمل الحالية وكل مساحة عمل إضافية
.envمستهدف بالمنع.env.productionمستهدف بالمنعsecrets/ ومحتوياتهمستهدف بالمنعsubfolder/.envافحصه بصورة مستقلةأسرار بأسماء جديدة أو نسخ في السجلاتافحصه بصورة مستقلة:root يمنع القراءة. من الاستثناءات :minimal اللازم للتنفيذ، والمجلدات المؤقتة التي يسمح بها الملف الموروث.
يرث صلاحية التعديل من :workspace ويمنع المسارات المحددة أعلاه. لا يلتقط هذا المثال الأسرار المضمّنة في المخرجات.
أسماء الملفات التعريفية ومساحات العمل المتعددة والملفات المؤقتة
project-private هو الاسم المختار لهذا المثال. :workspace_roots يُطبّق على مساحة العمل الحالية والمساحات الإضافية، ويستهدف المسارات المدرجة الموجودة مباشرة داخل كل جذر. secrets يستهدف ملفًا أو شجرة فرعية بهذا الاسم.
لا تمنع هذه الإعدادات كل قراءة خارج مساحة العمل. ينبغي أيضًا تجنّب نسخ الأسرار إلى التخزين المؤقت.
المصدر: OpenAI: إعداد Permission profiles والمنع والنطاق. لا يتضمن هذا المقال تقريرًا عن تطبيق المثال على جهاز فعلي والتحقق من العزل.
4. أنماط .env والثغرات التي ينبغي فحصها
تصلح الأسماء الدقيقة للأسرار المخزنة في مواضع معروفة. وعند استخدام الأنماط، تذكّر أن *.env و .env.* مختلفان. لا تفترض أن المثال الرسمي **/*.env يمنع أيضًا .env.production بالشروط نفسها.
| مثال القاعدة | الهدف المقصود | افحص بصورة مستقلة |
|---|---|---|
.env | ملف بهذا الاسم مباشرة في جذر مساحة العمل | المجلدات الفرعية وأسماء الملفات ذات اللاحقة المضافة |
.env.production | ملف إعدادات الإنتاج في الجذر | إعدادات الإنتاج بأسماء أخرى أو نسخ منها |
secrets | المسار بهذا الاسم في الجذر ومحتوياته | نسخ في مواضع أخرى مثل السجلات والنسخ الاحتياطية |
**/*.env | الملفات التي تنتهي بـ .env عبر مستويات المجلدات | الأسماء ذات اللواحق وعمق الفحص والتغييرات بعد التشغيل |
افحص عمق المجلدات والملفات المضافة بعد التشغيل
في Linux وWSL وWindows الأصلي، قد تحتاج أنماط المنع التي تحتوي على ** غير المقيّد إلى توسيع محدود قبل التشغيل. تشرح الوثائق الرسمية ضبط glob_scan_max_depth على 1 على الأقل، أو تحديد العمق صراحةً بأنماط مثل *.env و */*.env و */*/*.env. إذا كنت تستخدم مجلدات أعمق، فتحقق من شمولها حتى ذلك العمق.
تجمع بعض مسارات الإنفاذ المسارات المطابقة قبل التشغيل. افحص ما إذا كانت الملفات المنشأة بعد ذلك ممنوعة على نظام التشغيل والإصدار وبيئة التنفيذ التي تستخدمها فعلًا. لا تعتبر أنماط المنع قاعدة شاملة تحمي بالضرورة كل الأسرار التي ستنشأ مستقبلًا.
أي قاعدة تتقدم عند تداخل الصلاحيات؟
قد تتجاوز قاعدة لمسار أكثر تحديدًا قاعدة أوسع. يتقدم المنع عند تطابق المسار، لكن يمكن أيضًا إنشاء سماح ضيق داخل منع واسع. افحص طبقات الإعدادات الإضافية وما يُورث من الملفات التعريفية الأصلية.
المصادر: OpenAI: منع القراءة بالمسارات والأنماط، ترتيب تحميل الإعدادات. لا يُحمّل ملف المشروع .codex/config.toml إلا في المشاريع الموثوقة. ميّز بين ما هو مكتوب في الملف وما هو ساري في الجلسة الحالية.
5. ما الذي يمنعه تعطيل شبكة الأوامر وما الذي لا يمنعه؟
تعطيل شبكة الأوامر يقيّد استخدام الشبكة بواسطة البرامج العاملة داخل بيئة العزل المعنية. لكن طلبات النماذج والمصادقة الصادرة عن عميل Codex منفصلة عن ضوابط شبكة الأوامر. تعطيل شبكة الأوامر لا يثبت أن الشفرة التي يقرأها Codex لن تُرسل ضمن سياق النموذج.
نطاق قيود شبكة الأوامر
نشاط الشبكة للأوامر والبرامج النصية والعمليات الفرعية التابعة لها.
النماذج والمصادقة والبحث على الويب والتطبيقات المتصلة وMCP والمتصفح وComputer Use والمهام السحابية.
للسماح بالشبكة مع تقييد الوجهات، عليك تفعيل وكيل الشبكة إضافة إلى تحديد قواعد النطاقات. مجرد إدراج النطاقات المسموحة في ملف الصلاحيات لا يفعّل تلك القواعد.
| شبكة الأوامر | الوكيل | النتيجة |
|---|---|---|
| معطّلة | أي إعداد | اتصال الأوامر بالشبكة غير مسموح |
| مفعّلة | معطّل | الاتصال المباشر ممكن؛ قواعد نطاقات الملف التعريفي لا تُطبّق |
| مفعّلة | مفعّل | يفرض الوكيل قواعد النطاقات، ويرفض الوجهات الخارجية إذا لم تُحدَّد وجهات مسموحة |
قد تُرسل الأسرار إلى وجهة مسموحة أيضًا. تقييد النطاقات ليس هو فحص المحتوى المُرسل. وعند الموافقة على تنفيذ خارج بيئة العزل، لا تفترض أن قواعد المنع الحالية ما زالت تحميك دون تغيير. افحص ما الذي توسّعه الموافقة. OpenAI: صلاحيات الشبكة ومتطلبات الوكيل.
6. متغيرات البيئة وأنظمة التشغيل وCloud
الأسرار لا تقتصر على الملفات. إذا احتوت الصدفة على مفتاح API، فقد تستخدم عملية فرعية قيمته عبر متغيرات البيئة الموروثة حتى عند منع الوصول إلى الملف. يُدار توريث البيئة بصورة مستقلة باستخدام shell_environment_policy.
الاستبعاد التلقائي للمتغيرات: true مقابل false
true | القيمة الافتراضيةلا يطبّق الاستبعاد التلقائي للمتغيرات التي تتضمن أسماؤها KEY أو SECRET أو TOKEN
falseيطبّق ذلك الاستبعاد التلقائي
ignore_default_excludes. وهو منفصل عن قواعد منع الملفات، ويصفّي حسب اسم المتغير؛ ولا يكتشف كل سر.لا يحمي ذلك المتغيرات ذات الأسماء الأخرى أو القيم التي تسترجعها البرامج من مواضع أخرى. يُطبّق set بعد الاستبعاد، ويمكنه إعادة المتغيرات المستبعدة. OpenAI: توريث البيئة وأولوية الإعدادات.
Windows: افحص آلية العزل أيضًا
تصف الوثائق Permission profiles المحلية لأنظمة macOS وLinux وWSL وWindows الأصلي، لكن آليات تنفيذها تختلف. على Windows، توصف بيئة العزل ذات الصلاحيات المرتفعة بأنها الآلية الأقوى. توفر بيئة العزل دون صلاحيات مرتفعة عزلًا أضعف للشبكة، ولا تستطيع فرض بعض سياسات عزل القراءة والكتابة. وتشير الوثائق إلى رفض التنفيذ عند وجود سياسات غير مدعومة. ظهور خطأ ليس سببًا للانتقال إلى Full access. OpenAI: الإنفاذ حسب نظام التشغيل.
Cloud: لا تنقل الإعدادات المحلية كما هي
افحص إعدادات بيئة Codex Cloud المعنية بصورة مستقلة. لا تفترض أن الملفات التعريفية المحلية تُطبّق تلقائيًا على Cloud كله أو على بيئة dot السحابية. لا تستخدم اقتراح الإعدادات المحلية في هذا المقال دون تعديل بوصفه إعدادًا سحابيًا. راجع متطلبات اتصال Codex Remote وCloud والكمبيوتر للتعرف على اختلاف مواضع التنفيذ.
7. التحقق باستخدام ملفات وهمية
«طلبت منه ألا يقرأ» و«حفظت الإعدادات» و«رُفضت القراءة فعلًا» أدلة مختلفة. لا حاجة إلى الاختبار بجعل Codex يقرأ أسرارًا حقيقية. ما يلي خطة تحقق للمستخدم أو المسؤول، وليس تقرير اختبار على هذا الجهاز.
- سجّل البيئة: دوّن إصدار Codex ونظام التشغيل وموضع التنفيذ والصلاحيات المحددة. في CLI، افحص نطاق مساحة العمل باستخدام
/statusوالصلاحيات المحددة باستخدام/permissions. - افحص تعارض الإعدادات: راجع إعدادات المستخدم والمشروع الموثوق والملف التعريفي المحدد وأعلام التشغيل وقيود المسؤول. لا تلصق ملفات الإعدادات كاملة أو القيم السرية في المحادثة بغرض التشخيص.
- جهّز ملفات وهمية: في مساحة عمل منفصلة لا تحتوي على أسرار، أنشئ ملفات يُفترض السماح بها وأخرى يُفترض منعها. استخدم علامات خيالية في محتوياتها.
- تحقق من السماح والمنع معًا: عبر مسار التنفيذ نفسه، تأكد من إمكانية قراءة الملفات المسموحة ومن أن القراءات الممنوعة تُرجع خطأً. امتناع Codex طوعًا عن قراءة ملف ليس دليلًا على منع مفروض فعليًا.
- اختبر مواضع مختلفة: افحص ملفات وهمية في الجذر والمجلدات الفرعية وأسماء ذات لواحق وملفات تُنشأ بعد التشغيل. لا توافق على إجراء يتجاوز المنع. إذا نجحت قراءة غير متوقعة، فتوقف عن استخدام تلك البيئة وابحث عن السبب.
- افحص مسارات الإخراج أيضًا: تحقق مما إذا كانت الاختبارات أو عمليات البناء تطبع الأسرار في السجلات، أو تمرر المعلومات نفسها إلى أدوات MCP أخرى أو المتصفحات أو التطبيقات المتصلة.
تختلف المعلومات المتاحة حسب إصدار CLI وطريقة العرض؛ لذا افحص المخرجات الفعلية بدل الاكتفاء بأسماء الأوامر. يوفر CLI الرسمي أيضًا فحوصًا خاصة بكل نظام تشغيل عبر codex sandbox. قبل اعتبارها مكافئة، تحقق من تطابق الإعدادات التي يختبرها الأمر المساعد مع الإعدادات السارية في جلسة سطح المكتب أو IDE المعتادة. OpenAI: اختبار بيئة العزل.
إضافة قواعد منع لاحقًا لا تُبطل المحتوى الذي قُرئ سابقًا. افحص تخزين المحادثات والسجلات والملفات السابقة وإعدادات التدريب كلًّا على حدة. نجاح قراءة ملف وحده لا يثبت إفشاءه لطرف ثالث. قيّم ما قُرئ وأين وصل والحاجة إلى معالجة بيانات الاعتماد باعتبارها أسئلة مستقلة.
طلب مستخدمون أيضًا وسائل لاستبعاد الملفات السرية في بلاغ علني في Codex. يوضح ذلك وجود قلق فعلي، لكنه لا يثبت أن الميزة غير مدعومة اليوم. يستند هذا المقال في وصف المواصفات إلى وثائق Permissions الرسمية الحالية، لا إلى المنشورات القديمة.
الأسئلة الشائعة
هل يمنع وضع القراءة فقط إرسال .env؟
لا يُستنتج هذا الضمان من وضع القراءة فقط؛ فهو يقيّد التعديلات. لمنع محتوى .env القابل للقراءة من الدخول في سياق النموذج، افحص بصورة مستقلة منع قراءة الملف وبيئة عمل لا تحتوي على أسرار.
هل تكفي .gitignore أو AGENTS.md؟
لا تعوّض منع القراءة المفروض فعليًا. قواعد تجاهل Git وتعليمات العمل والصلاحيات التي يفرضها نظام التشغيل آليات مستقلة. تحقق بملفات وهمية من أن المنع يعمل في بيئة التنفيذ الحالية.
هل يجعل تعطيل الشبكة Codex يعمل بالكامل على الجهاز؟
لا. قيود شبكة الأوامر لا تعطّل الاتصال بالنماذج أو خدمات المصادقة. وإعدادات المتصفح وMCP والتطبيقات المتصلة والسحابة مستقلة أيضًا.
هل يحمي هذا المثال الأسرار بالكامل على Windows؟
لا توجد ضمانات للحماية الكاملة. عليك فحص دعم الميزة التجريبية وآلية عزل نظام التشغيل وطبقات الإعدادات الفعلية والمسارات والأدوات التي تُنفَّذ. لم يُطبّق مثال هذا المقال على جهاز فعلي، ولم يُختبر عمليًا.