Gateway

فحوصات التدقيق الأمني

يُصدر الأمر openclaw security audit نتائج منظّمة مفهرسة حسب checkId. تمثّل هذه الصفحة الكتالوج المرجعي لهذه المعرّفات. للاطّلاع على نموذج التهديدات العام وإرشادات التحصين، راجع الأمان.

لا تُشغَّل بعض عمليات التحقق إلا باستخدام openclaw security audit --deep: عمليات فحص شيفرة Plugin/Skills ‏(plugins.code_safety* وskills.code_safety*) وعمليات التحقق بالمسبار المباشر من Gateway ‏(gateway.probe_*). أما بقية عمليات التحقق الواردة في هذا الجدول فتُشغَّل باستخدام الأمر العادي openclaw security audit.

تعني درجة خطورة مثل warn/critical أنه يمكن إصدار checkId نفسه بأيٍّ من المستويين وفقًا للإعدادات (مثل ما إذا كان Gateway مكشوفًا عن بُعد). فيما يلي القيم عالية الدلالة التي يُرجَّح أن تراها في عمليات النشر الفعلية (والقائمة غير شاملة):

checkId الخطورة سبب أهميته مفتاح/مسار الإصلاح الأساسي الإصلاح التلقائي
fs.state_dir.perms_world_writable حرجة يمكن للمستخدمين/العمليات الأخرى تعديل حالة OpenClaw بالكامل أذونات نظام الملفات على ~/.openclaw نعم
fs.state_dir.perms_group_writable تحذير يمكن لمستخدمي المجموعة تعديل حالة OpenClaw بالكامل أذونات نظام الملفات على ~/.openclaw نعم
fs.state_dir.perms_readable تحذير دليل الحالة قابل للقراءة من قِبل الآخرين أذونات نظام الملفات على ~/.openclaw نعم
fs.state_dir.symlink تحذير تصبح وجهة دليل الحالة حد ثقة آخر تخطيط نظام الملفات لدليل الحالة لا
fs.config.perms_writable حرجة يمكن للآخرين تغيير سياسة المصادقة/الأدوات/الإعدادات أذونات نظام الملفات على ~/.openclaw/openclaw.json نعم
fs.config.symlink تحذير ملفات الإعدادات المرتبطة رمزيًا غير مدعومة للكتابة وتضيف حد ثقة آخر استبدلها بملف إعدادات عادي أو وجّه OPENCLAW_CONFIG_PATH إلى الملف الفعلي لا
fs.config.perms_group_readable تحذير يمكن لمستخدمي المجموعة قراءة رموز/إعدادات ملف الإعدادات أذونات نظام الملفات على ملف الإعدادات نعم
fs.config.perms_world_readable حرجة قد يكشف ملف الإعدادات الرموز/الإعدادات أذونات نظام الملفات على ملف الإعدادات نعم
fs.config_include.perms_writable حرجة يمكن للآخرين تعديل ملف تضمين الإعدادات أذونات ملف التضمين المشار إليه من openclaw.json نعم
fs.config_include.perms_group_readable تحذير يمكن لمستخدمي المجموعة قراءة الأسرار/الإعدادات المضمّنة أذونات ملف التضمين المشار إليه من openclaw.json نعم
fs.config_include.perms_world_readable حرجة الأسرار/الإعدادات المضمّنة قابلة للقراءة من الجميع أذونات ملف التضمين المشار إليه من openclaw.json نعم
fs.auth_profiles.perms_writable حرجة يمكن للآخرين حقن بيانات اعتماد النماذج المخزّنة أو استبدالها أذونات agents/<agentId>/agent/auth-profiles.json نعم
fs.auth_profiles.perms_readable تحذير يمكن للآخرين قراءة مفاتيح API ورموز OAuth أذونات agents/<agentId>/agent/auth-profiles.json نعم
fs.credentials_dir.perms_writable حرجة يمكن للآخرين تعديل حالة إقران القناة/بيانات الاعتماد أذونات نظام الملفات على ~/.openclaw/credentials نعم
fs.credentials_dir.perms_readable تحذير يمكن للآخرين قراءة حالة بيانات اعتماد القناة أذونات نظام الملفات على ~/.openclaw/credentials نعم
fs.sessions_store.perms_readable تحذير يمكن للآخرين قراءة نصوص الجلسات/بياناتها الوصفية أذونات مخزن الجلسات نعم
fs.log_file.perms_readable تحذير يمكن للآخرين قراءة السجلات المنقّحة التي تظل حساسة أذونات ملف سجل Gateway نعم
fs.synced_dir تحذير وجود الحالة/الإعدادات في iCloud/Dropbox/Drive يوسّع نطاق كشف الرموز/نصوص الجلسات انقل الإعدادات/الحالة خارج المجلدات المتزامنة لا
gateway.bind_no_auth حرجة ربط بعيد بلا سر مشترك gateway.bind, gateway.auth.* لا
gateway.loopback_no_auth حرجة قد تصبح local loopback التي تمر عبر وكيل عكسي بلا مصادقة gateway.auth.*، إعداد الوكيل لا
gateway.trusted_proxies_missing تحذير ترويسات الوكيل العكسي موجودة لكنها غير موثوقة gateway.trustedProxies لا
gateway.http.no_auth تحذير/حرجة واجهات API لـ HTTP في Gateway متاحة مع auth.mode="none" gateway.auth.mode, gateway.http.endpoints.*, plugins.entries.admin-http-rpc لا
gateway.http.session_key_override_enabled معلومات يمكن لمستدعي واجهة HTTP API تجاوز sessionKey gateway.http.allowSessionKeyOverride لا
gateway.tools_invoke_http.dangerous_allow تحذير/حرجة يعيد تمكين الأدوات الخطرة عبر واجهة HTTP API لمستدعي المالك/المسؤول gateway.tools.allow لا
gateway.nodes.allow_commands_dangerous تحذير/حرجة يمكّن أوامر Node عالية التأثير (إدخال سطح المكتب/الكاميرا/الشاشة/جهات الاتصال/التقويم/SMS) gateway.nodes.allowCommands لا
gateway.nodes.deny_commands_ineffective تحذير إدخالات المنع الشبيهة بالأنماط لا تطابق نص الصدفة أو المجموعات gateway.nodes.denyCommands لا
gateway.tailscale_funnel حرجة تعريض للخطر عبر الإنترنت العام gateway.tailscale.mode لا
gateway.tailscale_serve معلومات تم تمكين التعريض ضمن شبكة Tailscale عبر Serve gateway.tailscale.mode لا
gateway.control_ui.allowed_origins_required حرجة واجهة التحكم خارج local loopback بلا قائمة سماح صريحة لأصول المتصفح gateway.controlUi.allowedOrigins لا
gateway.control_ui.allowed_origins_wildcard تحذير/حرجة يعطّل allowedOrigins=["*"] قائمة السماح لأصول المتصفح gateway.controlUi.allowedOrigins لا
gateway.control_ui.host_header_origin_fallback تحذير/حرجة يمكّن الرجوع الاحتياطي لأصل ترويسة Host (إضعاف الحماية من إعادة ربط DNS) gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback لا
gateway.control_ui.insecure_auth تحذير تم تمكين مفتاح التوافق للمصادقة غير الآمنة gateway.controlUi.allowInsecureAuth لا
gateway.control_ui.device_auth_disabled حرجة يعطّل التحقق من هوية الجهاز gateway.controlUi.dangerouslyDisableDeviceAuth لا
gateway.real_ip_fallback_enabled تحذير/حرجة قد تؤدي الثقة في الرجوع الاحتياطي لـ X-Real-IP إلى تمكين انتحال عنوان IP المصدر عبر سوء إعداد الوكيل gateway.allowRealIpFallback, gateway.trustedProxies لا
gateway.token_too_short تحذير يسهل تخمين الرمز المشترك القصير بالقوة الغاشمة gateway.auth.token لا
gateway.auth_no_rate_limit تحذير تعريض المصادقة بلا تحديد للمعدل يزيد خطر هجمات القوة الغاشمة gateway.auth.rateLimit لا
gateway.trusted_proxy_auth حرجة تصبح هوية الوكيل الآن حد المصادقة gateway.auth.mode="trusted-proxy" لا
gateway.trusted_proxy_no_proxies حرجة مصادقة الوكيل الموثوق بلا عناوين IP لوكلاء موثوقين غير آمنة gateway.trustedProxies لا
gateway.trusted_proxy_no_user_header حرج لا يمكن لمصادقة الوكيل الموثوق تحديد هوية المستخدم بأمان gateway.auth.trustedProxy.userHeader لا
gateway.trusted_proxy_no_allowlist تحذير تقبل مصادقة الوكيل الموثوق أي مستخدم موثَّق من المنبع gateway.auth.trustedProxy.allowUsers لا
gateway.trusted_proxy_allow_loopback تحذير تقبل مصادقة الوكيل الموثوق مصادر وكيل local loopback المسموح بها صراحةً gateway.auth.trustedProxy.allowLoopback لا
gateway.probe_auth_secretref_unavailable تحذير تعذّر على الفحص المتعمق حل مراجع الأسرار SecretRefs الخاصة بالمصادقة في مسار الأمر هذا مصدر مصادقة الفحص المتعمق / توفر SecretRef لا
gateway.probe_failed تحذير فشل الفحص المباشر لـ Gateway (--deep فقط) إمكانية الوصول إلى Gateway/المصادقة لا
discovery.mdns_full_mode تحذير/حرج يعلن الوضع الكامل لـ mDNS بيانات cliPath/sshPort الوصفية على الشبكة المحلية discovery.mdns.mode, gateway.bind لا
config.insecure_or_dangerous_flags تحذير إحدى علامات تصحيح الأخطاء غير الآمنة/الخطرة مفعّلة المفتاح المسمى في تفاصيل النتيجة لا
security.audit.suppressions.active معلومات يحتوي ناتج التدقيق على عمليات استثناء مكوّنة وقد يخضع للتصفية security.audit.suppressions لا
config.secrets.gateway_password_in_config تحذير تُخزَّن كلمة مرور Gateway مباشرةً في الإعدادات gateway.auth.password لا
config.secrets.hooks_token_in_config تحذير يُخزَّن رمز حامل الخطاف مباشرةً في الإعدادات hooks.token لا
hooks.token_reuse_gateway_token حرج يتيح رمز دخول الخطاف أيضًا مصادقة Gateway hooks.token, gateway.auth.token, gateway.auth.password لا
hooks.token_too_short تحذير يسهل تنفيذ هجوم القوة الغاشمة على مدخل الخطاف hooks.token لا
hooks.default_session_key_unset تحذير تتوزع عمليات وكيل الخطاف على جلسات مُنشأة لكل طلب hooks.defaultSessionKey لا
hooks.allowed_agent_ids_unrestricted تحذير/حرج يمكن لمستدعي الخطاف الموثَّقين التوجيه إلى أي وكيل مكوَّن hooks.allowedAgentIds لا
hooks.request_session_key_enabled تحذير/حرج يمكن للمتصل الخارجي اختيار sessionKey hooks.allowRequestSessionKey لا
hooks.request_session_key_prefixes_missing تحذير/حرج لا توجد قيود على أشكال مفاتيح الجلسات الخارجية hooks.allowedSessionKeyPrefixes لا
hooks.path_root حرج مسار الخطاف هو /، مما يزيد سهولة تعارض الدخول أو توجيهه خطأً hooks.path لا
hooks.installs_unpinned_npm_specs تحذير سجلات تثبيت الخطافات غير مثبّتة على مواصفات npm غير قابلة للتغيير بيانات تثبيت الخطاف الوصفية لا
hooks.installs_missing_integrity تحذير تفتقر سجلات تثبيت الخطافات إلى بيانات التكامل الوصفية بيانات تثبيت الخطاف الوصفية لا
hooks.installs_version_drift تحذير تنحرف سجلات تثبيت الخطافات عن الحزم المثبّتة بيانات تثبيت الخطاف الوصفية لا
logging.redact_off تحذير تتسرب القيم الحساسة إلى السجلات/الحالة logging.redactSensitive نعم
browser.control_invalid_config تحذير إعدادات التحكم في المتصفح غير صالحة قبل وقت التشغيل browser.* لا
browser.control_no_auth حرج التحكم في المتصفح مكشوف دون مصادقة باستخدام رمز/كلمة مرور gateway.auth.* لا
browser.remote_cdp_http تحذير يفتقر CDP البعيد عبر HTTP العادي إلى تشفير النقل cdpUrl في ملف تعريف المتصفح لا
browser.remote_cdp_private_host تحذير يستهدف CDP البعيد مضيفًا خاصًا/داخليًا cdpUrl في ملف تعريف المتصفح، browser.ssrfPolicy.* لا
sandbox.docker_config_mode_off تحذير إعدادات Docker الخاصة ببيئة العزل موجودة لكنها غير نشطة agents.*.sandbox.mode لا
sandbox.bind_mount_non_absolute تحذير قد تُحل عمليات ربط وحدات التخزين النسبية بصورة غير متوقعة agents.*.sandbox.docker.binds[] لا
sandbox.dangerous_bind_mount حرج يستهدف ربط وحدة تخزين بيئة العزل مسارات نظام أو بيانات اعتماد أو مقبس Docker محظورة agents.*.sandbox.docker.binds[] لا
sandbox.dangerous_network_mode حرج تستخدم شبكة Docker لبيئة العزل وضع الانضمام إلى نطاق الأسماء host أو container:* agents.*.sandbox.docker.network لا
sandbox.dangerous_seccomp_profile حرج يضعف ملف تعريف seccomp لبيئة العزل عزل الحاوية agents.*.sandbox.docker.securityOpt لا
sandbox.dangerous_apparmor_profile حرج يضعف ملف تعريف AppArmor لبيئة العزل عزل الحاوية agents.*.sandbox.docker.securityOpt لا
sandbox.browser_cdp_bridge_unrestricted تحذير جسر متصفح بيئة العزل مكشوف دون تقييد نطاق المصدر sandbox.browser.cdpSourceRange لا
sandbox.browser_container.non_loopback_publish حرج تنشر حاوية المتصفح الحالية CDP على واجهات غير local loopback إعداد نشر حاوية متصفح بيئة العزل لا
sandbox.browser_container.hash_label_missing تحذير تسبق حاوية المتصفح الحالية تسميات تجزئة الإعدادات الحالية openclaw sandbox recreate --browser --all لا
sandbox.browser_container.hash_epoch_stale تحذير تسبق حاوية المتصفح الحالية حقبة إعدادات المتصفح الحالية openclaw sandbox recreate --browser --all لا
sandbox.browser_container.docker_probe_timeout تحذير انتهت مهلة فحص تسمية Docker لحاوية المتصفح إمكانية الوصول إلى برنامج Docker الخفي لا
tools.exec.host_sandbox_no_sandbox_defaults تحذير يفشل exec host=sandbox بوضع الإغلاق الآمن عند تعطيل بيئة العزل tools.exec.host, agents.defaults.sandbox.mode لا
tools.exec.host_sandbox_no_sandbox_agents تحذير يفشل exec host=sandbox لكل وكيل بوضع الإغلاق الآمن عند تعطيل بيئة العزل agents.list[].tools.exec.host, agents.list[].sandbox.mode لا
tools.exec.security_full_configured تحذير/حرج يعمل تنفيذ المضيف مع security="full" tools.exec.security, agents.list[].tools.exec.security لا
tools.exec.agent_skill_mcp_boundary_drift تحذير توجد قوائم سماح Skills للوكيل بينما يمكن لتنفيذ المضيف الوصول إلى عملاء/سجلات MCP agents.list[].tools.exec.*، عزل بيئة العزل/نظام التشغيل، بيانات اعتماد خادم MCP لا
tools.exec.fs_tools_disabled_but_exec_enabled تحذير سياسة أدوات نظام الملفات لا تجعل تنفيذ أوامر الصدفة للقراءة فقط tools.deny، agents.list[].tools.deny، agents.*.sandbox.workspaceAccess لا
tools.exec.auto_allow_skills_enabled تحذير موافقات التنفيذ تثق ضمنيًا في الملفات التنفيذية للـ Skills ملف موافقات المضيف لا
tools.exec.allowlist_interpreter_without_strict_inline_eval تحذير قوائم السماح للمفسرات تتيح التقييم المضمّن دون فرض إعادة الموافقة tools.exec.strictInlineEval، agents.list[].tools.exec.strictInlineEval، قائمة سماح موافقات التنفيذ لا
tools.exec.safe_bins_interpreter_unprofiled تحذير الملفات التنفيذية للمفسر/بيئة التشغيل في safeBins دون ملفات تعريف صريحة توسّع مخاطر التنفيذ tools.exec.safeBins، tools.exec.safeBinProfiles، agents.list[].tools.exec.* لا
tools.exec.safe_bins_broad_behavior تحذير الأدوات واسعة السلوك في safeBins تضعف نموذج الثقة منخفض المخاطر لتصفية الإدخال القياسي tools.exec.safeBins، agents.list[].tools.exec.safeBins لا
tools.exec.safe_bin_trusted_dirs_risky تحذير يتضمن safeBinTrustedDirs أدلة قابلة للتغيير أو محفوفة بالمخاطر tools.exec.safeBinTrustedDirs، agents.list[].tools.exec.safeBinTrustedDirs لا
tools.elevated.allowFrom.<provider>.wildcard حرج يتضمن tools.elevated.allowFrom.<provider> القيمة "*"، مما يوافق على كل مُرسِل tools.elevated.allowFrom.<provider> لا
tools.elevated.allowFrom.<provider>.large تحذير تضم قائمة السماح ذات الصلاحيات المرتفعة لـ <provider> أكثر من 25 إدخالًا tools.elevated.allowFrom.<provider> لا
agents.claude_cli.permission_mode_overridden_by_yolo تحذير يُتجاهل --permission-mode في Claude CLI لأن تنفيذ OpenClaw يعمل بالكامل دون إشراف وسيطات tools.exec.security، وtools.exec.ask، وcliBackends.claude-cli لا
skills.workspace.symlink_escape تحذير يُحل مسار skills/**/SKILL.md في مساحة العمل إلى خارج جذرها (انحراف سلسلة الروابط الرمزية) حالة نظام الملفات لـ skills/** في مساحة العمل لا
skills.workspace.scan_truncated تحذير بلغ فحص Skills في مساحة العمل الحد الأقصى لزيارات الأدلة قبل اكتماله تسطيح/تبسيط شجرة دليل skills/ في مساحة العمل لا
plugins.extensions_no_allowlist تحذير تُثبَّت Plugins دون قائمة سماح صريحة لها plugins.allowlist لا
plugins.allow_phantom_entries تحذير تسرد plugins.allow معرّفًا لا يطابق أي Plugin مثبّت plugins.allow لا
plugins.installs_unpinned_npm_specs تحذير سجلات فهرس Plugins غير مثبّتة على مواصفات npm غير قابلة للتغيير بيانات تعريف تثبيت Plugin لا
plugins.installs_missing_integrity تحذير تفتقر سجلات فهرس Plugins إلى بيانات تعريف التكامل بيانات تعريف تثبيت Plugin لا
plugins.installs_version_drift تحذير تنحرف سجلات فهرس Plugins عن الحزم المثبّتة بيانات تعريف تثبيت Plugin لا
plugins.code_safety تحذير/حرج عثر فحص شيفرة Plugin على أنماط مريبة أو خطرة (--deep فقط) شيفرة Plugin / مصدر التثبيت لا
plugins.code_safety.entry_path تحذير يشير مسار إدخال Plugin إلى مواقع مخفية أو داخل node_modules entry في بيان Plugin لا
plugins.code_safety.entry_escape حرج يخرج مسار إدخال Plugin من دليل Plugin entry في بيان Plugin لا
plugins.code_safety.manifest_parse_error تحذير تعذّر تحليل بيان Plugin أثناء فحص سلامة الشيفرة ملف بيان Plugin لا
plugins.code_safety.scan_failed تحذير تعذّر إكمال فحص شيفرة Plugin (--deep فقط) مسار Plugin / بيئة الفحص لا
plugins.<pluginId>.security_audit_failed تحذير طرح جامع تدقيق أمني مملوك لـ Plugin خطأً جامع التدقيق الأمني لذلك الـ Plugin لا
skills.code_safety تحذير/حرج تحتوي بيانات تعريف/شيفرة مثبّت Skills على أنماط مريبة أو خطرة (--deep فقط) مصدر تثبيت Skills لا
skills.code_safety.scan_failed تحذير تعذّر إكمال فحص شيفرة Skills (--deep فقط) بيئة فحص Skills لا
security.exposure.open_channels_with_exec تحذير/حرج يمكن للغرف المشتركة/العامة الوصول إلى وكلاء مفعّل لديهم التنفيذ channels.*.dmPolicy، channels.*.groupPolicy، tools.exec.*، agents.list[].tools.exec.* لا
security.exposure.open_groups_with_elevated حرج تنشئ الرسائل الخاصة/المجموعات المفتوحة مع الأدوات ذات الصلاحيات المرتفعة مسارات عالية التأثير لحقن الموجّهات مسارات سياسة الرسائل الخاصة ذات المستوى الأعلى أو المتداخلة، وتجاوزات الحساب، وchannels.*.groupPolicy لا
security.exposure.open_groups_with_runtime_or_fs حرج/تحذير يمكن للرسائل الخاصة/المجموعات المفتوحة الوصول إلى أدوات الأوامر/الملفات دون حواجز وضع الحماية/مساحة العمل مسارات سياسة الرسائل الخاصة/المجموعات، وtools.profile/deny، وtools.fs.workspaceOnly، وagents.*.sandbox.mode لا
security.exposure.open_groups_with_control_plane_tools حرج يمكن للرسائل الخاصة/المجموعات المفتوحة الوصول إلى أدوات مستوى التحكم في Gateway/Cron مسارات سياسة الرسائل الخاصة/المجموعات، وtools.allow، وtools.alsoAllow، وtools.profile، وgateway، وcron لا
security.trust_model.multi_user_heuristic تحذير يبدو الإعداد متعدد المستخدمين بينما نموذج ثقة Gateway مخصص لمساعد شخصي فصل حدود الثقة، أو تعزيز أمان المستخدمين المشتركين (sandbox.mode، ومنع الأدوات/تقييد نطاق مساحة العمل) لا
tools.profile_minimal_overridden تحذير تتجاوز إعدادات الوكيل ملف التعريف الأدنى العام agents.list[].tools.profile لا
plugins.tools_reachable_permissive_policy تحذير يمكن الوصول إلى أدوات الامتداد في سياقات متساهلة tools.profile + السماح/المنع للأدوات لا
models.legacy تحذير لا تزال عائلات النماذج القديمة مُعدّة اختيار النموذج لا
models.weak_tier تحذير النماذج المُعدّة أدنى من المستويات الموصى بها حاليًا اختيار النموذج لا
models.small_params حرج/معلومات ترفع النماذج الصغيرة مع أسطح الأدوات غير الآمنة مخاطر الحقن اختيار النموذج + سياسة وضع الحماية/الأدوات لا
channels.<provider>.dm.open حرج سياسة الرسائل الخاصة لـ <provider> هي "open"؛ ويمكن لأي شخص مراسلة الروبوت مباشرةً channels.<provider>.dmPolicy، و.allowFrom لا
channels.<provider>.dm.open_invalid تحذير إعداد dmPolicy="open" دون "*" في allowFrom غير متسق channels.<provider>.allowFrom لا
channels.<provider>.dm.scope_main_multiuser تحذير يتشارك عدة مرسلين للرسائل الخاصة الجلسة الرئيسية حاليًا session.dmScope لا
channels.<provider>.allowFrom.dangerous_name_matching_enabled معلومات يعيد dangerouslyAllowNameMatching تمكين مطابقة المُرسِل حسب الاسم/البريد الإلكتروني/الوسم القابل للتغيير عطّل dangerouslyAllowNameMatching واستخدم معرّفات مُرسِلين ثابتة لا
channels.<provider>.account.read_only_resolution تحذير تعذّر التحقق الكامل من حساب قناة لأغراض التدقيق (سر/Gateway مفقود) تأكد من إمكانية تحليل الأسرار المشار إليها، أو شغّل الفحص مقابل لقطة حية من Gateway لا
channels.<provider>.warning.<n> معلومات/تحذير/حرج تحذير أمني خاص بموفّر، مصنّف من نص حر يقدمه Plugin راجع تفاصيل النتيجة لا
summary.attack_surface معلومات ملخص تجميعي لوضع المصادقة والقنوات والأدوات والتعرّض للمخاطر مفاتيح متعددة (راجع تفاصيل النتيجة) لا

يتم إنشاء معرّفات التحقق channels.<provider>.* وtools.elevated.allowFrom.<provider>.* لكل قناة/موفّر مُهيّأ، لذا فإن <provider> هو معرّف قناة فعلي (على سبيل المثال telegram وdiscord) في المخرجات الفعلية، وليس سلسلة نصية حرفية.

ذو صلة

Was this useful?
On this page

On this page