[{"data":1,"prerenderedAt":211},["ShallowReactive",2],{"seo-verification":3,"blog-ثغرة-bricksforge-cve-2026-85097-ووردبريس-التحديث-ar":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-ثغرة-bricksforge-cve-2026-85097-ووردبريس-التحديث-ar",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":33,"intro":36,"sections":37,"ctaTitle":159,"ctaBody":160,"ctaButton":161,"ctaUrl":162,"relatedPosts":163},525,"ثغرة-bricksforge-cve-2026-85097-ووردبريس-التحديث",{"fr":12,"en":13,"ar":10,"es":14},"bricksforge-cve-2026-85097-wordpress-mettre-a-jour","bricksforge-cve-2026-85097-wordpress-update","bricksforge-cve-2026-85097-wordpress-actualizar","Bricksforge CVE-2026-85097: التحديث وتدقيق مواقع العملاء","الإصدار 3.1.8.10 من Bricksforge يصلح CVE-2026-85097، رفع ملفات بلا مصادقة مستغَل فعليًا. جرد wp-cli، ملفات PHP المزروعة، السجلات، الأسرار الواجب تغييرها.",10,0,false,"2026-10-29T00:00:00+00:00","2026-10-29T15:45:55+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},8,"الأمان والمراقبة","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fbricksforge-cve-2026-85097-wordpress-mettre-a-jour-poster.svg",{"categorySlug":34,"appSlug":35},"أنظمة-إدارة-المحتوى-والمواقع","wordpress","ثغرة رفع ملفات بلا مصادقة في إضافة Bricksforge، المكمّل لمنشئ Bricks، كانت مستغَلة قبل الإعلان عنها. الإصلاح موجود، لكن التحديث وحده لا يكفي: قد يحمل موقع محدَّث ملف PHP زُرع قبل الترقيع. وصعوبة الوكالة مزدوجة: معرفة أي العملاء يستخدمون الإضافة، ثم إثبات أن أيًّا منهم لم يُزَر. يقدّم هذا الدليل الإجراء الكامل، من الجرد بـ wp-cli إلى تغيير الأسرار، مع Bricksforge كحالة حقيقية ونموذج يمكن إعادته مع الثغرة القادمة.",[38,42,80,83,105,108,111,132,136,139,150,153,156],{"type":39,"title":40,"body":41},"h2","الثغرة في فقرة واحدة، والباقي إجراء","تمس CVE-2026-85097 الإصدار 3.1.8.9 من Bricksforge وما قبله؛ والإصلاح هو الإصدار 3.1.8.10. تتحقق وحدة Pro Forms من نوع MIME للملف عند الرفع الأول، لكنها تثق عند إرسال النموذج بالحقل `url` الذي يقدّمه العميل داخل المعامل `temporaryFileUploads`. ملف GIF\u002FPHP متعدد الصيغ يجتاز الفحص، ثم يُشار إليه بعنوان وجهة بصيغة PHP: يكتبه الخادم هناك وينفّذه عند أول طلب.\n\nأما الخطورة فالمصادر تختلف: حرجة، بدرجة CVSS تساوي 9.8 بحسب SecurityWeek و10.0 بحسب نشرة Patchstack. لا نرجّح رقمًا، فالتصرف المطلوب واحد. رصدت Patchstack أولى عمليات الاستغلال في 7 أكتوبر 2026، قبل الإعلان (نشرة 8 أكتوبر)، وتذكر SecurityWeek في مقالها الصادر في 12 أكتوبر نحو 6000 موقع يستخدم الإضافة. قوائم عناوين IP المهاجمة سريعة الزوال: هي في نشرة Patchstack ولا داعي لنسخها.",{"type":43,"title":44,"headers":45,"rows":49},"comparison","جدول مرجعي: أين تنظر وعمّ تبحث",[46,47,48],"أين تنظر","عمّ تبحث","ما يدل عليه",[50,54,58,62,66,70,73,76],[51,52,53],"إصدار الإضافة","Bricksforge 3.1.8.9 أو أقدم","معرَّض للثغرة: الانتقال إلى 3.1.8.10 أو أحدث",[55,56,57],"إضافة غائبة أو معطّلة","لا سطر في جرد wp-cli","لا تعرّض عبر هذه الإضافة، وسجّل ذلك مع ذلك",[59,60,61],"`wp-content\u002Fuploads\u002Fbricksforge\u002Ftmp\u002F`","أي ملف PHP","زرع محتمل: عامِل الموقع كموقع مخترق",[63,64,65],"`wp-content\u002Fuploads\u002FYYYY\u002FMM\u002F`","ملفات `login_admin_*.php`","هدف ذكرته Patchstack: عامِل الموقع كموقع مخترق",[67,68,69],"سجلات الوصول","طلب POST إلى `\u002Fwp-json\u002Fbricksforge\u002Fv1\u002Fform_submit`","محاولة: قارنها بحالة القرص",[67,71,72],"`admin-ajax.php` مع `bricksforge_form_submit` أو `bricksforge_regenerate_nonce`","محاولة: يُطلب الـ nonce قبل الرفع",[67,74,75],"طلب إلى ملف PHP داخل `uploads\u002F`","تنفيذ محتمل: تغيير الأسرار",[77,78,79],"حسابات ووردبريس","مدير حديث غير معروف","استمرارية محتملة: فكّر في الاستعادة",{"type":39,"title":81,"body":82},"لماذا لا يكفي التحديث","سبق الاستغلالُ الإصلاحَ. موقع انتقل إلى 3.1.8.10 في 20 أكتوبر قد يكون استقبل ملفًا في اليوم الثامن، وهذا الملف ينجو من التحديث: الترقيع يغلق الباب لكنه لا يُخرج ما دخل. هذا هو الاعتراض الذي يجب حسمه قبل أن تكتب للعميل «كل شيء مُصلَح». الترتيب الصحيح: رقّع أو عطّل، ثم ابحث عن الاختراق (ملفات، سجلات، حسابات، أسرار)، ثم سلّم إثباتًا مؤرَّخًا.\n\nوثمة عقبة ثانية أبسط: بلا جرد مركزي لا يعرف أحد أي العملاء يستخدمون الإضافة. موقع Bricks سُلّم قبل عامين واستضافه مزوّد آخر لا يظهر في أي تنبيه. لذلك يأتي الجرد أولًا، وهو يخدم كل ثغرة إضافة قادمة.",{"type":84,"title":85,"steps":86},"steps","جرد المواقع باستخدام wp-cli",[87,90,93,96,99,102],{"title":88,"body":89},"اختبر موقعًا واحدًا في كل مرة","`cd \u002Fhome\u002Fclient\u002Fpublic_html`\n`wp plugin is-installed bricksforge && wp plugin get bricksforge --field=version`\n`wp plugin list --fields=name,version,update`\nيجيب الأمر الأول عبر رمز الخروج، ويعرض الثاني الإصدار، ويسرد الثالث كل الإضافات مع حالة تحديثها. المسار مثال فقط: كيّفه مع مزوّد الاستضافة لديك.",{"title":91,"body":92},"اعثر على كل المواقع في خادم","`find \u002Fhome -name wp-config.php -not -path '*\u002Fwp-content\u002F*'`\nكل ملف `wp-config.php` يدل على تثبيت. يستبعد المرشّح النسخ المخزّنة داخل القوالب أو النسخ الاحتياطية؛ راجع القائمة، فمجلد اختبار منسيّ يُحتسب أيضًا.",{"title":94,"body":95},"مرّ على كل التثبيتات في حلقة","`find \u002Fhome -name wp-config.php -not -path '*\u002Fwp-content\u002F*' -print0 | while IFS= read -r -d '' f; do d=$(dirname \"$f\"); echo \"$d $(sudo -u \"$(stat -c %U \"$d\")\" wp --path=\"$d\" --skip-plugins --skip-themes plugin get bricksforge --field=version 2>\u002Fdev\u002Fnull)\"; done`\nيطبع كل سطر المجلد ثم الإصدار، أو لا شيء إن كانت الإضافة غائبة. الخياران `--skip-plugins --skip-themes` يتفاديان تحميل شيفرة قد تكون مفخخة أثناء التدقيق.",{"title":97,"body":98},"اختر المستخدم بعناية","شغّل wp-cli بحساب مالك الموقع كما في الحلقة أعلاه. الخيار `--allow-root` يعمل، لكنه ينشئ ملفات مملوكة لـ root داخل الموقع وينفّذ شيفرة الموقع بكامل الصلاحيات: احتفظ به للحالات التي لا بديل فيها.",{"title":100,"body":101},"دوّن النتيجة في جدول","سطر لكل تثبيت: العميل، المزوّد، المسار، الإصدار المرصود، تاريخ القراءة وساعتها. أضف عمودًا «زيارة منذ 7 أكتوبر» تملؤه في المرحلة التالية. يصبح هذا الجدول القطعة المركزية في الملف المسلَّم إلى العملاء.",{"title":103,"body":104},"أكمل المواقع الواقعة خارج خادمك","بالنسبة لموقع مستضاف في مكان آخر، اطلب وصولًا مؤقتًا أو تصديرًا لنتيجة `wp plugin list --fields=name,version,update`. الموقع الذي لا تستطيع استجوابه يبقى في الجدول بعبارة «لم يُتحقق منه»، لا غائبًا.",{"type":39,"title":106,"body":107},"حدّد الأولويات ونافذة التدقيق الرجعي","عالج أولًا ما هو معرَّض ومستغَل معًا: موقع بإصدار Bricksforge 3.1.8.9 أو أقدم، ونماذج Pro Forms عامة، في الإنتاج. ثم مواقع الاختبار ونسخ العمل، ثم المواقع التي الإضافة فيها مثبّتة وغير مفعّلة. الإضافة الخاملة تستحق قرارًا: حذفها أسلم من تركها تهرم.\n\nتبدأ نافذة التدقيق الرجعي في 7 أكتوبر 2026 الساعة 21:47 بالتوقيت العالمي، وهي أول إشارة نشرتها Patchstack. حوّل هذه الساعة إلى المنطقة الزمنية لسجلاتك قبل التصفية. والنقطة الجوهرية: إن لم تصل سجلاتك إلى ذلك التاريخ فغياب الأثر لا يثبت شيئًا. دوّن تاريخ أقدم سطر متاح، فهو يحدّ ما يمكنك تأكيده.",{"type":39,"title":109,"body":110},"حدّث، أو عطّل مؤقتًا في الأثناء","حين يكون التحديث ممكنًا يكفي `wp plugin update bricksforge` لتثبيت يستقبل الإصدارات بشكل عادي؛ وبحسب الترخيص قد يطلب الموقع المرور بلوحة التحكم أو بأرشيف الناشر. ثم تحقق بالأمر `wp plugin get bricksforge --field=version`: يجب أن تكون النتيجة 3.1.8.10 أو أحدث.\n\nوحين لا يكون ممكنًا بعد، توجد ثلاثة تدابير مؤقتة لا يحل أي منها محل الإصلاح. تعطيل الإضافة بالأمر `wp plugin deactivate bricksforge` يقطع المسار على حساب نماذج الموقع: نبّه العميل. ومنع تنفيذ PHP داخل `uploads\u002F` يُسقط قيمة أي ملف مزروع: في nginx، `location ~* ^\u002Fwp-content\u002Fuploads\u002F.*\\.(php|php[0-9]|phtml|pht|phps)$ { deny all; }` قبل كتلة PHP العامة؛ وفي Apache، ملف `.htaccess` داخل `uploads\u002F` يحوي `\u003CFilesMatch \"\\.(php|php[0-9]|phtml|pht|phps)$\"> Require all denied \u003C\u002FFilesMatch>`. وأخيرًا، تحديد معدل الطلبات على `\u002Fwp-json\u002Fbricksforge\u002Fv1\u002Fform_submit` يبطئ الدفعات، وقاعدة RapidMitigate من Patchstack تحجب حركة الهجوم لمن يستخدم تلك الخدمة. هذه التدابير تخفض الخطر ولا تصلح الثغرة.",{"type":84,"title":112,"steps":113},"طارد الملفات المزروعة وآثار الوصول",[114,117,120,123,126,129],{"title":115,"body":116},"ابحث عن ملفات PHP في uploads","`find wp-content\u002Fuploads -type f \\( -iname '*.php' -o -iname '*.php[0-9]' -o -iname '*.phtml' -o -iname '*.pht' -o -iname '*.phps' \\) -ls`\nمجلد `uploads\u002F` السليم لا يحوي PHP قابلًا للتنفيذ. ملف `index.php` من بضعة بايتات وهو مجرد تعليق شائع وغير ضار؛ اقرأ أي ملف آخر قبل الحكم عليه.",{"title":118,"body":119},"استهدف المواضع التي ذكرتها Patchstack","`ls -la wp-content\u002Fuploads\u002Fbricksforge\u002Ftmp\u002F`\n`find wp-content\u002Fuploads -name 'login_admin_*.php' -ls`\n`find wp-content\u002Fuploads -type f -newermt '2026-10-07' -ls`\nيستهدف الأمران الأولان المواضع واسم الملف من النشرة؛ ويسرد الثالث كل ما كُتب في `uploads\u002F` منذ 7 أكتوبر لاكتشاف متغيّر.",{"title":121,"body":122},"امسح سجلات nginx","`zgrep -h -i -E 'bricksforge\u002Fv1\u002Fform_submit|bricksforge_(form_submit|regenerate_nonce)' \u002Fvar\u002Flog\u002Fnginx\u002Faccess.log*`\nيقرأ `zgrep` الملفات المضغوطة والعادية سواءً: فتدوير gzip مشمول بالنجمة. احتفظ بتاريخ كل سطر وقارنه بنافذة التدقيق الرجعي.",{"title":124,"body":125},"امسح سجلات Apache وcPanel","`zgrep -h -i -E 'bricksforge\u002Fv1\u002Fform_submit|bricksforge_(form_submit|regenerate_nonce)' \u002Fvar\u002Flog\u002Fapache2\u002F*access*.log* \u002Fvar\u002Flog\u002Fhttpd\u002F*access*log* \u002Fusr\u002Flocal\u002Fapache\u002Fdomlogs\u002F*`\nتختلف المجلدات: `\u002Fvar\u002Flog\u002Fapache2\u002F` في Debian وUbuntu، و`\u002Fvar\u002Flog\u002Fhttpd\u002F` في RHEL وAlmaLinux، و`\u002Fusr\u002Flocal\u002Fapache\u002Fdomlogs\u002F` في خادم cPanel. المسارات الغائبة تنتج خطأً غير مؤثر.",{"title":127,"body":128},"ابحث عن الوصول إلى الملفات المزروعة","`zgrep -h -i -E 'login_admin_[^ ]*\\.php|\u002Fuploads\u002F[^ ]*\\.(php[0-9]?|phtml|pht)|%2e(php|phtml)' \u002Fvar\u002Flog\u002Fnginx\u002Faccess.log*`\nطلب، وخصوصًا GET ناجح، إلى ملف PHP داخل `uploads\u002F` يعني أن ملفًا ربما نُفّذ. متغيّرات حالة الأحرف والترميز تُغطّى هنا في السجلات لا على القرص.",{"title":130,"body":131},"عُدّ المصادر ودوّن","`zgrep -h 'POST \u002Fwp-admin\u002Fadmin-ajax.php' \u002Fvar\u002Flog\u002Fnginx\u002Faccess.log* | awk '{print $1}' | sort | uniq -c | sort -rn | head`\nيرتّب هذا الأمر العناوين بحسب عدد طلبات POST إلى `admin-ajax.php`. دوّن النتيجة ولو كانت فارغة، مع تاريخ أقدم سجل قُرئ.",{"type":133,"title":134,"body":135},"tip","ما لا تُظهره السجلات","كثيرًا ما يسافر إجراء AJAX في جسم طلب POST الذي لا يسجّله سجل الوصول: فقد لا يجد البحث عن `bricksforge_form_submit` شيئًا رغم وقوع الاستدعاء. في هذه الحالة ابحث عن حجم غير عادي من طلبات POST إلى `admin-ajax.php` أو إلى مسار REST، وقارنه بحالة القرص. يصف هذا الدليل مهام إدارية؛ وهو مقدَّم كما هو، دون دعم من جانبنا.",{"type":39,"title":137,"body":138},"عُثر على ملف: لم يعد الموقع سليمًا","وجود ملف مزروع يعني تنفيذ شيفرة على الخادم بصلاحيات حساب الموقع. حذف الملف وحده لا يكفي: فقد استُخدم لإنشاء حساب أو لقراءة `wp-config.php` أو لزرع باب ثانٍ. اعزل الموقع، واحتفظ بنسخة من الملف للتحليل، ثم استعد من نسخة احتياطية أقدم من 7 أكتوبر 2026 بدل التنظيف اليدوي.\n\nبعد الاستعادة، حدّث Bricksforge قبل إعادة الموقع إلى الإنترنت، وإلا عاد الطلب نفسه. وإن لم توجد نسخة سليمة، أعد البناء من الشيفرة المصدرية وتصدير المحتوى، وعامل أي استخراج من قاعدة البيانات كأنه مشبوه.",{"type":140,"title":141,"items":142},"ul","الأسرار والحسابات الواجب تجديدها بعد اختراق",[143,144,145,146,147,148,149],"**أملاح ومفاتيح `wp-config.php`** — الأمر `wp config shuffle-salts` يعيد توليدها ويُبطل الجلسات المفتوحة، ومنها جلسة المتسلل.","**كلمة مرور قاعدة البيانات** — غيّرها في خادم MySQL أو MariaDB ثم في `wp-config.php` دون انتظار.","**مفاتيح API والرموز** — الدفع، البريد المعاملاتي، الخرائط، الخدمات الخارجية المصرّح بها في الموقع أو في القاعدة.","**بيانات اعتماد SMTP** — حساب بريد مقروء في الإعدادات يُستعمل سريعًا في إرسال احتيالي.","**كلمات مرور المديرين** — `wp user reset-password \u003CID>` لكل واحد، وكلمة مرور فريدة لكل شخص.","**حسابات ووردبريس المجهولة** — الأمر `wp user list --fields=ID,user_login,role,user_registered --orderby=user_registered --order=DESC` يكشف الإنشاءات الحديثة.","**الاستمرارية** — `wp cron event list`، ومجلد `wp-content\u002Fmu-plugins\u002F`، وأي إضافات أو قوالب ليست لك.",{"type":39,"title":151,"body":152},"الإثبات المؤرَّخ الذي يُسلَّم للعميل","العميل الذي يقرأ «تم التحديث» لا يعرف ما الذي تحققتَ منه. سلّم ورقة من صفحة واحدة لكل موقع: تاريخ التدقيق وساعته، الإصدار قبل وبعد، نتيجة البحث عن الملفات، الفترة التي تغطيها السجلات مع تاريخ أقدم سطر قُرئ، الإجراءات المتخذة (استعادة، تغيير أسرار، حسابات محذوفة) وما تعذّر فحصه. ذكر الحدود يحميك بقدر ما تحميك النتائج.\n\nوهذه الورقة حمايتك أيضًا إن ظهر اختراق لاحقًا: فهي تؤرّخ ما كنتَ تعرفه وما فعلته. احفظ جدول الجرد والمخرجات الخام للأوامر مع الورقة.",{"type":39,"title":154,"body":155},"أعد الإجراء نفسه مع ثغرة الإضافة القادمة","خمس خطوات تصلح لأي إضافة. الجرد: الإضافة، الإصدار، الموقع، العميل، المزوّد. الأولوية: المعرَّض والمستغَل أولًا. تحديد نافذة التدقيق الرجعي انطلاقًا من أول إشارة منشورة. التعطيل أو التحديث، ثم البحث عن الملفات وآثار الوصول والحسابات والأسرار بهذا الترتيب. تسليم الإثبات المؤرَّخ. لا يتغير سوى أمر الجرد وأنماط البحث، وتقدّمها نشرة الناشر أو Patchstack.\n\nالأجزاء المبعثرة بين عدة مزوّدين تبطئ كل مرحلة. يجمع حساب الموزّع مواقعك في حساب واحد، مع نقطة وصول لكل عميل؛ والوصول عبر SSH وأداة wp-cli يتوقف على الخطة، فتحقق منه قبل ذلك. تحتفظ أنت بعلاقة العميل ونحن نتولى البنية التحتية.",{"type":39,"title":157,"body":158},"الوثائق الرسمية","نشرة Patchstack حول CVE-2026-85097: https:\u002F\u002Fpatchstack.com\u002Farticles\u002Fcritical-unauthenticated-arbitrary-file-upload-vulnerability-exploited-in-bricksforge-plugin\u002F\nمقال SecurityWeek: https:\u002F\u002Fwww.securityweek.com\u002Fbricksforge-wordpress-plugin-vulnerability-exploited-in-the-wild\u002F\nأوامر `wp plugin`: https:\u002F\u002Fdeveloper.wordpress.org\u002Fcli\u002Fcommands\u002Fplugin\u002F\nالأمر `wp config shuffle-salts`: https:\u002F\u002Fdeveloper.wordpress.org\u002Fcli\u002Fcommands\u002Fconfig\u002Fshuffle-salts\u002F\nالتوجيه `location` في nginx: https:\u002F\u002Fnginx.org\u002Fen\u002Fdocs\u002Fhttp\u002Fngx_http_core_module.html#location","مواقع عملاء كثيرة، حلقة تدقيق واحدة","حين تعيش مواقع العملاء عند عدة مزوّدين يكلّف كل تدقيق ساعات. مع استضافة الموزّعين من ServOrbit.com، تتيح نقطة وصول لكل عميل وواجهة واحدة تجميع مواقع عملائك تحت واجهة واحدة، بأسعارك وعلامتك.","اكتشف عرض الوكالات","\u002Fsolutions\u002Fagences",[164,180,196],{"id":165,"slug":166,"slugs":167,"title":171,"excerpt":172,"readTime":23,"views":18,"isPinned":19,"publishedAt":173,"updatedAt":174,"category":175,"categories":176,"featuredImage":30,"bgImage":31,"posterImage":178,"relatedSolution":179},373,"ووردبريس-cve-2026-87902-ترقية-7-1-2",{"fr":168,"en":169,"ar":166,"es":170},"wordpress-cve-2026-87902-rce-mise-a-jour-7-1-2","wordpress-cve-2026-87902-update-to-712-now","wordpress-cve-2026-87902-actualiza-a-712-urgente","ووردبريس ‎CVE-2026-87902‎: الترقية إلى 7.1.2 قبل الاختراق","ثغرة ‎CVE-2026-87902‎ (CVSS 9.2) يجري استغلالها منذ 22 سبتمبر 2026. تحقق من إصدارك وطبّق التحديث لحماية مواقعك.","2026-09-24T00:00:00+00:00","2026-10-26T18:53:20+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[177],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fwordpress-cve-2026-87902-rce-mise-a-jour-7-1-2-poster.svg",{"categorySlug":34,"appSlug":35},{"id":181,"slug":182,"slugs":183,"title":187,"excerpt":188,"readTime":189,"views":18,"isPinned":19,"publishedAt":190,"updatedAt":191,"category":192,"categories":193,"featuredImage":30,"bgImage":31,"posterImage":195,"relatedSolution":30},508,"جرد-إصدارات-php-لمواقع-العملاء-منهج-للوكالات",{"fr":184,"en":185,"ar":182,"es":186},"inventaire-versions-php-parc-sites-clients-agence","php-version-inventory-for-client-sites-an-agency-method","inventario-de-versiones-php-de-sitios-cliente-metodo-de-agencia","جرد إصدارات PHP لمواقع العملاء: منهج للوكالات","سجل لإصدار PHP الذي يخدمه كل موقع عميل لدى عدة مستضيفين: مستويات الوصول، سكربتات دفعية، أولويات، رسالة للعميل وإثبات مؤرخ للتصحيح.",11,"2026-10-27T00:00:00+00:00","2026-10-27T23:58:39+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[194],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Finventaire-versions-php-parc-sites-clients-agence-poster.svg",{"id":197,"slug":198,"slugs":199,"title":203,"excerpt":204,"readTime":17,"views":18,"isPinned":19,"publishedAt":205,"updatedAt":206,"category":207,"categories":208,"featuredImage":30,"bgImage":31,"posterImage":210,"relatedSolution":30},521,"قائمة-تدقيق-أمان-vps-شهرية-للعملاء-للوكالات",{"fr":200,"en":201,"ar":198,"es":202},"checklist-audit-securite-mensuel-vps-clients-agence","monthly-security-audit-checklist-client-vps-agency","auditoria-seguridad-mensual-vps-clientes-agencia-checklist","تدقيق أمان VPS شهري للعميل: قائمة في 45 دقيقة","سبعة فحوصات شهرية لخادم VPS العميل: التحديثات والنواة وحسابات SSH والمنافذ والشهادات والنسخ الاحتياطية والسجلات، مع تقرير مؤرخ.","2026-10-28T00:00:00+00:00","2026-10-29T03:10:22+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[209],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fchecklist-audit-securite-mensuel-vps-clients-agence-poster.svg",1793289046462]