أبقِ الأسرار خارج بيئة العمل، وامنع الوصول إلى الملفات الحساسة. ابدأ بالجمع بين هذين الإجراءين.

وضع القراءة فقط، والموافقات، وتعطيل استخدام البيانات للتدريب تؤدي أغراضًا مختلفة. افحص كل إجراء على حدة لتحديد مدى قدرته على منع الوصول إلى الملفات السرية.

افحص القراءة والتنفيذ والإرسال كلًّا على حدة

ما الذي يمكن قراءته؟

أزل الأسرار غير اللازمة من بيئة العمل. فكّر في قاعدة deny لمنع قراءة الملفات الحساسة.

الإجراءات التي تتجاوز الحدود

تحقّق ممن يراجع طلبات الموافقة. تجنّب توسيع الحدود باستخدام Full access أو السماح بالتنفيذ خارج بيئة العزل.

الوصول إلى الشبكة والأدوات الأخرى

افحص شبكة الأوامر، والإرسال إلى النموذج، ووصول المتصفح أو MCP كلًّا على حدة.

لا يوجد مفتاح واحد يمنع جميع عمليات الوصول إلى الملفات واتصالات الشبكة واستخدام البيانات للتدريب.

راجعنا وثائق OpenAI الخاصة بالصلاحيات والعزل والموافقات والأمان والإعدادات في 8 أكتوبر 2026. يركّز هذا الدليل على الأوامر داخل بيئة عزل محلية. لم يُطبّق مثال الإعدادات على جهاز فعلي، ولم يُختبر إنفاذه عمليًا. لم نغيّر أي إعدادات للجهاز أو الحساب.

1. القراءة فقط والموافقات وإعدادات التدريب

منع تعديل الملفات يختلف عن منع قراءتها.

read-only

وضع يقيّد الكتابة. لا يخفي محتوى الملفات القابلة للقراءة باعتبارها أسرارًا.

workspace-write

يحدد مواضع السماح بالتعديل. لكنه لا يحصر القراءة بالضرورة في المواضع نفسها.

آلية التحكمما الذي تتحكم فيه أساسًا؟ما الذي لا تضمنه وحدها؟
وضع القراءة فقطإمكانية تعديل الملفاتعدم قراءة الملفات السرية المتاحة
سياسة الموافقاتمن يراجع الإجراءات التي تتجاوز الحدودمراجعة بشرية لكل قراءة ضمن النطاق المسموح
قواعد منع الوصول إلى الملفاترفض القراءة والكتابة في المسارات المحددةحذف المحتوى الذي لُصق سابقًا أو منع الوصول عبر أدوات أخرى
قيود شبكة الأوامروجهات اتصال الأوامر المعزولةحجب كل اتصالات النماذج والمصادقة والمتصفحات وMCP والخدمات الأخرى
إعدادات التدريباستخدام البيانات المعالجة لتحسين النماذج من عدمهعدم معالجة البيانات أو إرسالها

حتى عند استخدام on-request، يمكن تنفيذ الأوامر ضمن النطاق المسموح دون موافقة إضافية. للمراجعة البشرية، افحص سياسة الموافقات والجهة التي تتلقى طلب المراجعة معًا.

الفرق عند استخدام مراجعة آلية بالذكاء الاصطناعي

approvals_reviewer = "auto_review" يوجّه المراجعة المعنية إلى الذكاء الاصطناعي. ليست هذه مراجعة بشرية، ولا تضيف شرط مراجعة لكل إجراء كان مسموحًا أصلًا.

المصدر: OpenAI: الموافقات وحدود العزل. نناقش التدريب بصورة مستقلة في إعدادات تدريب ChatGPT وCodex والمعلومات السرية.

2. إبقاء الأسرار خارج بيئة العمل

قد يتطلب تعديل واجهة المستخدم الشفرة المصدرية وبيانات وهمية فقط. لا يلزم أن تكون مفاتيح API الخاصة بالإنتاج أو بيانات العملاء أو المستندات العائلية في البيئة نفسها.

نقل الملفات إلى مجلد آخر لا يكفي. إذا ظلت صلاحيات القراءة واسعة، فقد تبقى هذه الملفات قابلة للوصول.

ضع في نسخة العمل ما تحتاج إليه فقط

1
جهّز الشفرة المصدرية وبيانات وهمية

استخدم مدخلات صغيرة تعيد إنتاج المشكلة بدلًا من بيانات الإنتاج.

2
اترك القيم السرية خارجها

ينبغي أن تتضمن أمثلة الإعدادات أسماء الحقول فقط. افحص السجلات والنسخ الاحتياطية والمحفوظات أيضًا.

3
افحص الوصول إلى البيئة

تحقق من إمكانية الوصول إلى مجلدات أخرى أو المجلد المنزلي أو التخزين المشترك أو التطبيقات المتصلة.

نسخ العمل وحسابات المستخدمين المنفصلة والحاويات ما زالت تحتاج إلى فحص المجلدات المشتركة وأي بيانات اعتماد تُزوَّد بها.
هل تمنع قواعد تجاهل 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 يقرأ أسرارًا حقيقية. ما يلي خطة تحقق للمستخدم أو المسؤول، وليس تقرير اختبار على هذا الجهاز.

  1. سجّل البيئة: دوّن إصدار Codex ونظام التشغيل وموضع التنفيذ والصلاحيات المحددة. في CLI، افحص نطاق مساحة العمل باستخدام /status والصلاحيات المحددة باستخدام /permissions.
  2. افحص تعارض الإعدادات: راجع إعدادات المستخدم والمشروع الموثوق والملف التعريفي المحدد وأعلام التشغيل وقيود المسؤول. لا تلصق ملفات الإعدادات كاملة أو القيم السرية في المحادثة بغرض التشخيص.
  3. جهّز ملفات وهمية: في مساحة عمل منفصلة لا تحتوي على أسرار، أنشئ ملفات يُفترض السماح بها وأخرى يُفترض منعها. استخدم علامات خيالية في محتوياتها.
  4. تحقق من السماح والمنع معًا: عبر مسار التنفيذ نفسه، تأكد من إمكانية قراءة الملفات المسموحة ومن أن القراءات الممنوعة تُرجع خطأً. امتناع Codex طوعًا عن قراءة ملف ليس دليلًا على منع مفروض فعليًا.
  5. اختبر مواضع مختلفة: افحص ملفات وهمية في الجذر والمجلدات الفرعية وأسماء ذات لواحق وملفات تُنشأ بعد التشغيل. لا توافق على إجراء يتجاوز المنع. إذا نجحت قراءة غير متوقعة، فتوقف عن استخدام تلك البيئة وابحث عن السبب.
  6. افحص مسارات الإخراج أيضًا: تحقق مما إذا كانت الاختبارات أو عمليات البناء تطبع الأسرار في السجلات، أو تمرر المعلومات نفسها إلى أدوات MCP أخرى أو المتصفحات أو التطبيقات المتصلة.

تختلف المعلومات المتاحة حسب إصدار CLI وطريقة العرض؛ لذا افحص المخرجات الفعلية بدل الاكتفاء بأسماء الأوامر. يوفر CLI الرسمي أيضًا فحوصًا خاصة بكل نظام تشغيل عبر codex sandbox. قبل اعتبارها مكافئة، تحقق من تطابق الإعدادات التي يختبرها الأمر المساعد مع الإعدادات السارية في جلسة سطح المكتب أو IDE المعتادة. OpenAI: اختبار بيئة العزل.

إضافة قواعد منع لاحقًا لا تُبطل المحتوى الذي قُرئ سابقًا. افحص تخزين المحادثات والسجلات والملفات السابقة وإعدادات التدريب كلًّا على حدة. نجاح قراءة ملف وحده لا يثبت إفشاءه لطرف ثالث. قيّم ما قُرئ وأين وصل والحاجة إلى معالجة بيانات الاعتماد باعتبارها أسئلة مستقلة.

طلب مستخدمون أيضًا وسائل لاستبعاد الملفات السرية في بلاغ علني في Codex. يوضح ذلك وجود قلق فعلي، لكنه لا يثبت أن الميزة غير مدعومة اليوم. يستند هذا المقال في وصف المواصفات إلى وثائق Permissions الرسمية الحالية، لا إلى المنشورات القديمة.

الأسئلة الشائعة

هل يمنع وضع القراءة فقط إرسال .env؟

لا يُستنتج هذا الضمان من وضع القراءة فقط؛ فهو يقيّد التعديلات. لمنع محتوى .env القابل للقراءة من الدخول في سياق النموذج، افحص بصورة مستقلة منع قراءة الملف وبيئة عمل لا تحتوي على أسرار.

هل تكفي .gitignore أو AGENTS.md؟

لا تعوّض منع القراءة المفروض فعليًا. قواعد تجاهل Git وتعليمات العمل والصلاحيات التي يفرضها نظام التشغيل آليات مستقلة. تحقق بملفات وهمية من أن المنع يعمل في بيئة التنفيذ الحالية.

هل يجعل تعطيل الشبكة Codex يعمل بالكامل على الجهاز؟

لا. قيود شبكة الأوامر لا تعطّل الاتصال بالنماذج أو خدمات المصادقة. وإعدادات المتصفح وMCP والتطبيقات المتصلة والسحابة مستقلة أيضًا.

هل يحمي هذا المثال الأسرار بالكامل على Windows؟

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