تعرّف على المزيد حول أمان نواة برنامج ووردبريس الأساسي WordPress core عبر هذه الورقة البيضاء المجانية. يمكنك أيضًا تنزيلها بـ صيغة PDF.
نظرة عامة
هذا المستند عبارة عن تحليل وشرح لتطوير برنامج WordPress الأساسي وعملياته الأمنية ذات الصلة، بالإضافة إلى فحص للأمان المتأصل المدمج مباشرة في البرنامج. يجب على صانعي القرار الذين يقومون بتقييم ووردبريس كنظام لإدارة المحتوى أو إطار تطبيقات الويب استخدام هذا المستند في التحليل وصنع القرار، وللمطوّرين للإشارة إليه للتعرّف على مكونات الأمان وأفضل ممارسات البرنامج.
المعلومات الواردة في هذا المستند مُحدّثة لآخر إصدار مستقر من البرنامج، ووردبريس 4.7 في وقت النشر، ولكن ينبغي اعتبارها ذات صلة أيضًا بأحدث الإصدارات من البرنامج نظرًا لأن التوافق مع الإصدارات السابقة يمثل تركيزًا أقوى لفريق تطوير ووردبريس. ستلاحظ تدابير أمنية محددة وتغييرات حيث تمت إضافتها إلى البرنامج الأساسي في إصدارات محددة. نحثّ بشدة على تشغيل أحدث إصدار مستقر من ووردبريس دائمًا لضمان الحصول على أفضل تجربة ممكنة وآمنة.
ملخص إجرائي
ووردبريس هو نظام ديناميكي مفتوح المصدر لإدارة المحتوى يستخدم لتشغيل ملايين المواقع الإلكترونية، التطبيقات، والمدونات. يعمل حاليًا على تشغيل أكثر من 34% من أفضل 10 ملايين موقع على الإنترنت. ووردبريس يتيح سهولة الاستخدام، وتوسيع إمكانياته، ومجتمع تطوير متنامي يقوم بتطويره لجعله خيارًا شائعًا وآمنًا لمواقع الويب بجميع أحجامها.
منذ إنشائه في 2003، اجتاز ووردبريس مراحل تطوير صلبة ومستمرة حتى يتمكن برنامجه الأساسي من معالجة وعنونة وتخفيف تهديدات الأمان الشائعة، بما في ذلك قائمة أعلى 10 تهديدات التي تم تحديدها بواسطة مشروع أمان تطبيق الويب المفتوح (OWASP) بالإنجليزية Open Web Application Security Project باعتبارها ثغرات أمنية شائعة، والتي تمت مناقشتها في هذا المستند.
يعمل فريق أمان ووردبريس، بالتعاون مع فريق قيادة نواة ووردبريس WordPress Core Leadership وبدعم من مجتمع ووردبريس العالمي، على تحديد وحل مشكلات الأمان في البرنامج الأساسي المتاح للتوزيع والتنصيب عبر WordPress.org، بالإضافة إلى تقديم التوصيات وتوثيق أفضل الممارسات الأمنية لمؤلفي الإضافات والقوالب كأطراف ثالثة.
ينبغي أن يولي مطورو الموقع والمسؤولون اهتمامًا خاصًا بالاستخدام الصحيح لواجهة برمجة التطبيقات core APIs وتكوين الخادم الأساسي وتحديد مصدر الثغرات الشائعة، وكذلك التأكد من أن جميع المستخدمين يستخدمون كلمات مرور قوية للوصول إلى ووردبريس.
نظرة عامة عن ووردبريس
ووردبريس هو نظام إدارة محتوى (CMS) مجاني ومفتوح المصدر. وهو أكثر برامج إدارة المحتوى استخدامًا على نطاق واسع في العالم، ويسيطر على تشغيل أكثر من 34% من أفضل 10 ملايين موقع ويب1، مما يمنح هذا النظام حصة تقديرية تبلغ 60% من مجموع مواقع الويب التي تستخدم نظام إدارة محتوى (CMS).
ووردبريس مرخص بموجب رخصة جنو العمومية (GPLv2 أو مابعدها) والتي تقدّم أربع حريات أساسية. ويمكن الأخذ في الاعتبار “شرعية حقوق ووردبريس”:
- الحريّة لتشغيل البرنامج لأي غرض كان.
- الحريّة لمعرفة الطريقة التي يعمل فيها برنامج ووردبريس وإجراء أي تعديل لتجعله يعمل بالطريقة التي تناسبك.
- الحريّة لإعادة التوزيع.
- الحريّة لتوزيع نسخ من إصداراتك المعدلة للآخرين.
فريق قيادة نواة ووردبريس
مشروع ووردبريس جدير الاستحقاق، يديره ويضبطه فريق قيادي أساسي، ويقود الفريق الشريك المؤسس، وقائد التطوير Matt Mullenweg. يسيطر الفريق على جميع جوانب المشروع ويديره، بما في ذلك التطوير الأساسي، و WordPress.org والمبادرات المجتمعية.
يتكون فريق القيادة الأساسي (Core Leadership Team) من Matt Mullenweg، وخمسة مطورين رئيسيين، وأكثر من عشرة مطورين أساسيين يتمتعون بصلاحية وصول والتزام ومساهمة دائمة. هؤلاء المطورين لديهم السلطة النهائية في القرارات التقنية والفنية، ويقودون النقاشات الهندسية والجهود التنفيذية.
يحتوي ووردبريس على عدد من المطورين المساهمين. بعض هذه الأسماء أو الكيانات السابقة أو الحالية، وبعضها محتمل في المستقبل. هؤلاء المطورين المساهمين موثوق بهم ومساهمين مخضرمين في ووردبريس والذين حصلوا على قدر كبير من الاحترام بين أقرانهم. حسب الحاجة، يحتوي ووردبريس على مساهمين ضيوف، والأفراد الذين يتم منحهم حق الوصول إلى الالتزام، في بعض الأحيان لمكوّن محدد، على أساس مؤقت أو تجريبي.
المطورون الأساسيون والمساهمون يرشدون ويوجهون بشكل أساسي لآلية تطوير ووردبريس. في كل إصدار، يساهم مئات المطورين في تكويد ووردبريس. هؤلاء المساهمون الأساسيون هم متطوعون يساهمون في الكود المصدري للبرنامج بطريقة ما.
دورة إصدارات الـ ووردبريس
كل دورة إصدار من ووردبريس بقيادة واحد أو أكثر من مطوري نواة ووردبريس (core WordPress developers). تستغرق دورة الإصدار عادةً حوالي 4 أشهر من الاجتماع الأولي لتحديد النطاق والمدة حتى إطلاق الإصدار.
دورة الإصدار تتبع نمط وهيكلة المراحل التالية2:
- المرحلة الأولى: التخطيط وتأمين قيادات الفريق. ويتم ذلك في غرفة الدردشة #core عبر منصة Slack. يناقش قائد الإصدار مميزات الإصدار التالي من ووردبريس. يشارك المساهمون في ووردبريس في هذا النقاش. وسيقوم قائد الإصدار بتحديد قيادات الفريق لكل ميزة من المميزات.
- المرحلة الثانية: بدء أعمال التطوير. يقوم قيادات الفريق بتجميع الفرق والعمل على المميزات المسندة إليهم. يتم جدولة الدردشات والمحادثات العادية لضمان استمرار التطوّر في التقدم.
- المرحلة الثالثة: الإصدار التجريبي. يتم إطلاق الإصدارات التجريبية، ويُطلب من مختبري الإصدار التجريبي البدء بالإبلاغ عن الأخطاء. لن يتم تنفيذ المزيد من المساهمات للتحسينات الجديدة أو طلبات لميزات أخرى خلال هذه المرحلة. ليتم تشجيع ومساعدة مؤلفي القوالب والإضافات التابعة لأطراف ثالثة على اختبار الكود مقابل التغييرات القادمة.
- المرحلة الرابعة: الإصدار المؤهل. وهنا يتم تجميد السلسلة من أجل السلاسل القابلة للترجمة عند هذه النقطة. يستهدف العمل في حالة الإنحدار والمثبطات فقط.
- المرحلة الخامسة: الإطلاق. يتم إطلاق إصدار ووردبريس وجعله متاحًا في لوحة تحكم ووردبريس للحصول على التحديثات.
ترقيم الإصدارات، وإصدارات الأمان
الإصدار الرئيسي يملي ترقيمه بواسطة أول خانتين من التسلسل. على سبيل المثال، يعتبر 3.5 إصدار رئيسي، كما هو حال الإصدار 3.6 و 3.7 أو 4.0. لا يوجد بما يسمى “ووردبريس 3” أو “ووردبريس 4” ويشار إلى كل إصدار رئيسي من خلال ترقيمه المتسلسل، على سبيل المثال، “ووردبريس 3.9.”
قد تضيف الإصدارات الرئيسية ميزات جديدة للمستخدم ولواجهة برمجة التطبيقات APIs للمطورين. على الرغم من أن إصدار “رئيسي” في عالم البرمجيات عادةً يعني أنه يمكنك كسر / إلغاء / إبطال التوافق مع الإصدارات السابقة، إلا أنّ إصدارات ووردبريس تسعى جاهدة لعدم إبطال التوافق مع الإصدارات السابقة. تعد آلية التوافق مع الإصدارات السابقة إحدى أهم فلسفات المشروع، بهدف جعل التحديثات أسهل بكثير على المستخدمين والمطورين على حد سواء.
الإصدار الثانوي يفرض ترقيم خانته بالتسلسل الثالث. يعتبر الإصدار 3.5.1 إصدار ثانوي، كما هو حال الإصدار 3.4.23. ويتم إطلاق إصدار ثانوي من أجل إصلاح الثغرات الأمنية ومعالجة الأخطاء الحرجة فقط. فمنذ أن يتم إطلاق إصدارات جديدة من ووردبريس بشكل متكرر في فترات قصيرة — هذه هي الغاية لكل 4-5 أشهر لإصدار رئيسي، والإصدارات الثانوية تحدث حسب الحاجة — فليس هناك حاجة سوى للإصدارات الرئيسية والثانوية فقط.
التوافق مع الإصدارات السابقة
يقدّم مشروع ووردبريس التزاميًا قويًا بالتوافق مع الإصدارات السابقة. ويعني هذا الالتزام أن تلك القوالب، والإضافات، والأكواد والشفرات المخصصة ستستمر وظائفها بالعمل عند تحديث نواة برنامج ووردبريس الأساسي (WP Core)، مما يشجّع مالكي المواقع بالاحتفاظ بنسخة ووردبريس محدّثة إلى أحدث إصدار آمن.
أمان وحماية ووردبريس
فريق أمان وحماية الـ ووردبريس
يتكون فريق أمان ووردبريس من 50 خبيرًا تقريبًا، من بينهم قائدي التطوير الرئيسيين والباحثين في مجال الأمن — نصفهم تقريباً من موظفي Automattic (صانعي WordPress.com، أقدم وأكبر منصة استضافة ووردبريس على الويب)، ويعمل عدد منهم في مجال أمن الويب. يتبادل الفريق الاستشارات مع باحثين أمنيين مشهورين وموثوق بهم، بالإضافة إلى شركات الاستضافة3.
غالبًا ما يتعاون فريق أمان ووردبريس (WordPress Security Team) مع فرق الأمان الأخرى لمعالجة المشكلات في التبعيات الشائعة، مثل حل مشكلة الثغرة الأمنية في محلل PHP XML، المستخدمة من قبل API XML-RPC الذي يأتي مع ووردبريس، في الإصدار 3.9.24. كان هذا الحل للثغرة الأمنية نتيجة لجهد مشترك من قِبل الفرق الأمنية لووردبريس و دروبال.
المخاطر الأمنية لووردبريس، عملية المعالجة، وسجّل التاريخ
يؤمن فريق أمان ووردبريس بالإفصاح المسؤول عن طريق تنبيه الفريق الأمني على الفور إلى أي ثغرات محتملة. يمكن الإشارة إلى الثغرات الأمنية المحتملة للفريق الأمني عبر WordPress HackerOne5. يتواصل الفريق الأمني فيما بينهم عبر قناة خاصة على Slack، ويعمل الفريق داخل تلك الغرف المغلقة، لتتبع الخلل والمشاكل الأمنية بشكل خاص، ومن ثم إصلاح تلك الأخطاء.
يتم الإبلاغ بكل تقرير أمان عند الاستلام، ويعمل الفريق على التحقق من الثغرة الأمنية وتحديد مدى خطورتها. إذا تم تأكيد ذلك، يخطط الفريق الأمني بعد ذلك لترقيع وإصلاح الخطأ الذي يحتمل تضمينه ضمن إصدار قادم من برنامج ووردبريس أو احتمالية دفعه كإصدار أمني فوري وعاجل، اعتمادًا على شدة المشكلة.
بالنسبة للإصدار الأمني العاجل، ينشر الفريق الأمني تقريرًا عبر موقع أخبار ووردبريس6 WordPress.org News للإعلان عن الإصدار وذكر تفاصيل التغييرات. يتم احتساب وتقدير ذلك لمكتشف الثغرة الأمنية ليردَ ذكره في التقرير لتشجيع وتعزيز آلية التبليغ الجاد بثقة في المستقبل.
يشاهد مسؤولي ومدراء برنامج ووردبريس إشعارًا على لوحة تحكم مواقعهم لإجراء الترقية عند توفر إصدار جديد، وأيضًا بعد الترقية اليدوية سيتم إعادة توجيه المستخدمين إلى شاشة حول ووردبريس والتي تعرض تفاصيل التغييرات. إذا كان مسؤولي الموقع لديهم تحديثات تلقائية ممكنة في الخلفية، سيتلقون رسالة بريد إلكتروني بعد اكتمال الترقية.
تحديثات تلقائية في الخلفية للإصدارات الأمنية
بدءًا من الإصدار 3.7، قام ووردبريس بإدراج وتقديم ميزة التحديثات التلقائية في الخلفية لجميع الإصدارات الثانوية7، كما هو حال الإصدار 3.7.1 و 3.7.2. يمكن للفريق الأمني في ووردبريس التعرّف على الأخطاء ومعالجتها، ومن ثم دفع التحسينات الأمنية التلقائية لبرنامج ووردبريس دون الحاجة إلى قيام مالك الموقع بأي شيء عند النهاية، وسيتم تنصيب التحديث الأمني تلقائيًا.
عندما يتم دفع تحديثًا أمنيًا للإصدار المستقر الحالي من ووردبريس، سيدفع الفريق الأساسي (core team) أيضًا تحديثات أمنية لجميع الإصدارات التي لديها القدرة على التحديثات في الخلفية (منذ إصدار ووردبريس 3.7)، وبالتالي ستتلقى هذه الإصدارات الأقدم ولكن ستظل الإصدارات الأخيرة من ووردبريس تتلقى تحسينات أمنية.
يمكن لمالكي المواقع الشخصية اختيار إزالة التحديثات التلقائية في الخلفية من خلال تغيير بسيط في ملف إعدادات التكوين الخاص بهم، ولذلك ينصح بشدة فريق نواة البرنامج الأساسي الاحتفاظ بهذه الوظيفة، بالإضافة إلى تشغيل أحدث إصدار مستقر من ووردبريس.
قائمة OWASP 2013 أعلى 10
مشروع أمان تطبيق الويب المفتوح (OWASP) هو مجتمع عبر الإنترنت مخصص لأمان تطبيق الويب. تركز قائمة OWASP 2013 أعلى 108 على تحديد مخاطر التطبيقات الأمنية الأكثر خطورة لمجموعة واسعة من المؤسسات والمنظمات. يتم اختيار العناصر العشرة الأولى وتحديد أولوياتها بالاقتران مع تقديرات توافق إمكانية الاستغلال، وإمكانية الكشف، وتقديرات التأثير.
تناقش الأقسام التالية واجهات برمجة التطبيقات APIs، والمصادر، والسياسات التي يستخدمها ووردبريس لتعزيز وتحصين نواة البرنامج الرئيسي، والإضافات والقوالب التابعة لأطراف ثالثة ضد هذه المخاطر المحتملة.
A1 - الحقن Injection
هناك مجموعة من الوظائف وواجهات برمجة التطبيقات APIs متوفرة في ووردبريس لمساعدة المطورين في التأكد من أنه لا يمكن حقن التعليمات البرمجية غير المصرح بها، ومساعدتهم على التحقق من صحة البيانات وتصحيحها. تتوفر أفضل الممارسات والوثائق9 حول كيفية استخدام واجهات برمجة التطبيقات APIs هذه لحماية بيانات المدخلات والمخرجات أو التحقق من صحتها أو تصحيحها في HTML، وعناوين الروابط URLs، وترويسات HTTP، وعند التفاعل مع قاعدة البيانات ونظام الملفات. يمكن للمسؤولين أيضًا تقييد أنواع الملفات التي يمكن رفعها عبر الفلاتر.
A2 - المصادقة المعطوبة وإدارة الجلسات
يدير برنامج ووردبريس الأساسي حسابات المستخدم والمصادقة وتفاصيل مثل مُعرّف المستخدم، والاسم، وكلمة المرور والتي تدار من جهة الخادم، وكذلك مصادقة ملفات تعريف الارتباط. كلمات المرور محمية في قاعدة البيانات باستخدام تقنية salting و stretching القياسية للحماية. يتم إتلاف الجلسات الحالية عند تسجيل الخروج لإصدارات ووردبريس بعد الإصدار 4.0.
A3 - ثغرة (XSS) هجوم عبر موقع وسيط
يوفر ووردبريس سلسلة من الوظائف التي يمكن أن تساعد في ضمان أن البيانات التي يوفرها المستخدم آمنة10. يمكن للمستخدمين الموثوق بهم، أي مسؤولي الموقع والمحررين في برنامج ووردبريس المنصّب المفرد، ومسؤولي مواقع الشبكة فقط في موقع ووردبريس متعدد المواقع (WordPress Multisite)، من نشر نصوص HTML أو JavaScript غير مفلترة حسب الحاجة، كما هو الحال داخل مقالة أو صفحة. يتم تصفية المستخدمين غير الموثوق بهم والمحتوى الذي يقدمه المستخدم افتراضيًا لإزالة الإدخالات والوحدات الخطرة، وذلك باستخدام مكتبة KSES من خلال الوظيفة wp_kses
.
على سبيل المثال، لاحظ فريق نظام ووردبريس الأساسي قبل إصدار ووردبريس 2.3 إساءة استخدام للوظيفة the_search_query()
من قبل معظم مؤلفي القوالب، الذين لم يتمكنوا من التخلص أو ترشيح مخرجات الوظيفة للاستخدام في HTML. في حالة نادرة جدًا لعدم التوافق قليلاً مع الإصدارات السابقة، تم تغيير نتيجة ومخرجات الوظيفة في إصدار ووردبريس 2.3 ليتم التخطي المسبق.
A4 - إحالة كائن مباشر غير آمن
غالبًا ما يوفر ووردبريس مرجعًا مباشرًا للكائن، مثل المُعرّفات الرقمية الفريدة لحسابات المستخدمين أو المحتوى المتاح في حقول عنوان الرابط URL أو حقول النموذج. على الرغم من كشف وإفصاح هذه المُعرّفات عن معلومات النظام المباشر، فإن أذونات ووردبريس المتوفرة تعمل على نظام التحكم وتحديد صلاحيات الوصول ومنع الطلبات غير المصرح بها.
A5 - الخطأ في تهيئة الأمان
تقتصر غالبية عمليات التكوين لأمان ووردبريس على مسؤول واحد معتمد. يتم تقييم الإعدادات الافتراضية لووردبريس باستمرار على مستوى الفريق الأساسي، ويوفر فريق ووردبريس الأساسي الوثائق والمستندات وأفضل الممارسات لتشديد الإجراءات الأمنية من أجل إعداد تكوين الخادم لتشغيل موقع ووردبريس11.
A6 - تعرّض البيانات الحساسة للكشف
كلمات المرور لحسابات مستخدمي ووردبريس محمية ومشفرة salted و hashed بناءً على إطار عمل Portable PHP Password Hashing12. يستخدم ووردبريس نظام أذونات وصلاحيات للتحكّم في الوصول إلى المعلومات الخاصة، مثل معلومات التعريف الشخصية للمستخدمين المسجلين، وعناوين البريد الإلكتروني الخاصة بالمعلقين، والمحتوى المنشور بشكل خاص، وما إلى ذلك. في ووردبريس 3.7 تم تضمين مقياس لقوة كلمة المرور في البرنامج الأساسي الذي يوفر معلومات إضافية للمستخدمين الذين يقومون بتعيين كلمات المرور الخاصة بهم وتلميحات حول زيادة القوة. يحتوي ووردبريس أيضًا على إعداد تكوين اختياري يتطلب HTTPS.
A7 - وظيفة مفقودة على مستوى التحكّم بالوصول
يتحقق ووردبريس من طلبات التصاريح والمصادقة اللازمة والأذونات المناسبة لأي طلبات وصول على مستوى الوظيفة قبل تنفيذ الإجراء. يتم دمج صلاحية الوصول أو التصوّر لعناوين الروابط الإدارية، والقوائم، والصفحات بدون المصادقة الصحيحة بإحكام مع نظام المصادقة، لمنع وصول المستخدمين غير المصرح لهم.
A8 - ثغرة طلب تزوير عبر الموقع (CSRF)
يستخدم ووردبريس الرموز المشفرة (cryptographic tokens)، والتي تسمى nonces13، للتحقق من نية وغرض طلبات الإجراء من المستخدمين المصرح لهم والمخولين للحماية ضد تهديدات CSRF المحتملة. يوفر ووردبريس واجهة برمجة تطبيقات API لتوليد هذه الرموز الفريدة لإنشاء الرموز المميزة الفريدة والمؤقتة والتحقق منها، ويقتصر الرمز المميز على مستخدم معين لإجراء محدد، وكائن محدد، وفي فترة زمنية محددة، والتي يمكن إضافتها إلى النماذج وروابط العناوين URLs حسب الحاجة. بالإضافة إلى ذلك، يتم إبطال وإلغاء صلاحية جميع الـ nonces عند تسجيل الخروج.
A9 - استخدام المكوّنات مع الثغرات الأمنية المعروفة
يراقب فريق ووردبريس الأساسي عن كثب لمتابعة عدد قليل من المكتبات والأُطُر المضمَّنة التي يدمجها ووردبريس مع الوظائف الأساسية للنظام. في الماضي، قدّم الفريق الأساسي (core team) مساهمات في العديد من المكوّنات لجهات خارجية لجعلها أكثر أمانًا، مثل تحديث المعالجة لإصلاح ثغرة أمنية cross-site في TinyMCE في ووردبريس 3.5.214.
إذا لزم الأمر، قد يقرّر الفريق الأساسي استنساخ أو استبدال المكوّنات الخارجية الحسّاسة. وكمثال عندما تمّ استبدال مكتبة SWFUpload رسميًا بمكتبة Plupload في 3.5.2، وتم توفير نسخة (fork) آمنة من SWFUpload التي أتاحها الفريق الأمني<15 لتلك الإضافات التي لا زالت تستخدم مكتبة SWFUpload على المدى القصير.
A10 - عمليات التوجيه الغير متحقق منها وإعادة التوجيه
سيوفر نظام التحكّم والتوثيق الداخلي في ووردبريس، الحماية ضدّ محاولات توجيه المستخدمين إلى وجهات غير مرغوب فيها أو عمليات إعادة توجيه تلقائية. هذه الوظيفة متاحة أيضًا لمطوِّري الإضافات من خلال API واجهة برمجة التطبيقات، wp_safe_redirect()
16.
المخاطر الأمنية والمخاوف الأخرى
هجمات المعالجة XXE الخارجية (XML eXternal Entity)
عند معالجة XML، يقوم ووردبريس بتعطيل التحميل لإدخالات XML المخصصة لمنع هجمات الإدخالات الخارجية أو زيادة الإدخالات على حد سواء. بالإضافة إلى الوظائف الأساسية لـ PHP، لا يوفر ووردبريس واجهة برمجة تطبيقات API إضافية آمنة لمعالجة XML من أجل مؤلفي الإضافات.
هجمات SSRF على الخادم (Server Side Request Forgery)
يتم تصفية طلبات HTTP الصادرة من خلال ووردبريس لمنع الوصول إلى طلبات loopback وعناوين IP الخاصة. بالإضافة إلى ذلك، يُسمح بالوصول فقط إلى منافذ HTTP قياسية معينة.
أمان وحماية قوالب وإضافات ووردبريس
القالب الافتراضي
يتطلب ووردبريس قالب مُفعّل تم تمكينه لعرض المحتوى وإتاحته على الواجهة الأمامية. تمّ مراجعة واختبار القالب الافتراضي (حاليًا "Twenty Nineteen") الذي يأتي مع نظام ووردبريس الأساسي لأسباب أمنية من قِبل فريق مطوِّري القوالب بالإضافة إلى فريق تطوير النظام الأساسي.
القالب الافتراضي يمكن أن يكون بمثابة نقطة انطلاق لتطوير قالب مُخصّص، وباستطاعة مطوِّري الموقع إنشاء قالب فرعي (child theme) يتضمن بعض التخصيصات ولكن تعود معظم الوظائف والخصائص الأمنية إلى القالب الافتراضي الأساسي (القالب الأب). يمكن إزالة القالب الافتراضي بسهولة بواسطة أحد المسؤولين إذا لم تكن هناك حاجة إليه.
مستودعات قوالب وإضافات WordPress.org
هناك ما يقارب 50٬000+ إضافة و 5٬000+ قالب، مستضافة ومدرجة على موقع WordPress.org. تمّ تقديم هذه القوالب والإضافات لإدراجها، وتتم مراجعتها يدويًا من قِبل المتطوعين قبل إتاحتها في المستودع.
إن إدراج الإضافات والقوالب في المستودع ليس ضمانًا بأنها خالية من الثغرات الأمنية. تمّ توفير دليل إرشادي للقواعد والمبادئ لمؤلفي ومطوّري الإضافات للاستطلاع والتشاور قبل عملية التقديم لإدراجها في المستودع17، كما أنه تمّ توفير وثائق شاملة حول كيفية القيام بتطوير قالب ووردبريس18 على موقع WordPress.org.
لكل إضافة أو قالب، المقدرة على التطوير المستمر بواسطة مالك الإضافة أو القالب، وبالإمكان رفع أيّ إصلاحات لاحقة أو تطوير ميزة ما ومن ثمّ رفعها إلى المستودع وإتاحتها للمستخدمين مع هذه الإضافة أو القالب المنصّب مع إتاحة وصف لهذا التغيير. يتمّ إشعار مسؤولي ومدراء الموقع بالإضافات التي يجب تحديثها عبر لوحة تحكم الإدارة الخاصة بهم.
عند اكتشاف ثغرة أمنية في إضافة ما من قِبل الفريق الأمني في ووردبريس، سيتصل الفريق بمؤلف الإضافة والعمل معًا لإصلاح الخلل وإصدار نسخة آمنة من الإضافة. إذا لم تكن هناك استجابة من مؤلف الإضافة أو إذا كانت الثغرة الأمنية خطيرة، فسيتم سحب الإضافة/القالب من الدليل العام، وفي بعض الحالات، يتم إصلاحها وتحديثها مباشرةً بواسطة الفريق الأمني.
فريق مراجعة القوالب
فريق مراجعة القوالب عبارة عن مجموعة من المتطوعين، يقودهم أعضاء رئيسيون ومؤسسون في مجتمع ووردبريس، والذين يقومون بمراجعة واعتماد القوالب المُقدَّمة ليتم تضمينها في دليل قوالب ووردبريس الرسمي. يحتفظ فريق مراجعة القوالب بدليل الإرشادات الرسمي لمراجعة القوالب19، وتأريخ اختبار وحدة القالب20، و إضافة Theme Check Plugins للتحقق21، والمحاولة لإشراك وتعليم مجتمع مطوِّري قوالب ووردبريس وتثقيفهم فيما يتعلق بأفضل ممارسات التطوير. يتم الإشراف على التضمين والإدراج في المجموعة من قِبل لجنة المساهمين الأساسيين في فريق تطوير ووردبريس.
دور مزوّد الاستضافة في أمان ووردبريس
يمكن تثبيت ووردبريس على العديد من المنصّات. على الرغم من أن برنامج ووردبريس الأساسي يوفّر العديد من الاحتياطات والأحكام لتشغيل تطبيق ويب آمن، والذي تم تغطيتها في هذا المستند، فإن إعدادات التكوين لنظام التشغيل وخادم الويب الأساسي الذي يستضيف البرنامج لا يقل أهمية للحفاظ على تطبيقات ووردبريس وبقاؤها آمنة.
ملاحظة حول أمان WordPress.com و WordPress
يعتبر موقع WordPress.com من أكبر المواقع المشغلة لبرنامج ووردبريس في العالم، والموقع مملوك ومدار من قِبل شركة Automattic، التي أسسها Matt Mullenweg، الشريك المؤسس لمشروع ووردبريس. يعمل WordPress.com على برنامج ووردبريس الرئيسي، ولديه منهجيات أمنية للعمليات والمخاطر، والحلول الخاصة به22. يشير هذا المستند إلى الأمان فيما يتعلق ببرنامج ووردبريس المفتوح المصدر، المتاح تنزيله واستضافته ذاتيًا، والمتوفر على WordPress.org والذي يمكن تنصيبه على أي خادم في العالم.
ملحقات إضافية
واجهات برمجة تطبيقات ووردبريس Core WordPress APIs
تتألف واجهة برمجة تطبيقات ووردبريس الرئيسية (API) بالإنجليزية: The WordPress Core Application Programming Interface من عدة واجهات برمجية لتطبيقات APIs فردية23، يغطي كل منها الوظائف المتضمنة في مجموعة معينة من الوظائف لاستخدامها. تُشكّل هذه معًا واجهة المشروع التي تسمح للإضافات والقوالب بالتفاعل مع وظائف ووردبريس الأساسية، وتغييرها وتمديدها بشكل آمن ومحمي.
بينما تُوفّر كل واجهة برمجة تطبيقات من ووردبريس أفضل الممارسات والطرق القياسية للتفاعل مع برنامج ووردبريس الأساسي وتوسيع نطاق وظائفه، فإنّ واجهات برمجة تطبيقات ووردبريس WordPress APIs التالية هي الأكثر صلة وأهمية لفرض وتشديد أمان ووردبريس:
قاعدة بيانات API
توفّر (Database API) قاعدة البيانات لواجهة برمجة التطبيقات24 التي تمت إضافتها في ووردبريس 0.71، الطريقة الصحيحة للوصول إلى البيانات كقِيم مسماة ومخزنة في طبقة قاعدة البيانات.
نظام الملفات API
تم إنشاء نظام واجهة برمجة التطبيقات للملفات Filesystem API25، الذي تم إضافته في ووردبريس 2.626، من أجل ميزة التحديثات التلقائية الخاصة بـ ووردبريس. تقوم واجهة برمجة التطبيقات لنظام الملفات Filesystem API باستخلاص الوظائف اللازمة لقراءة وكتابة الملفات المحلية إلى نظام الملفات ليتم تنفيذها بشكل آمن، على مجموعة متنوعة من أنواع الاستضافة.
تقوم بذلك من خلال الفئة WP_Filesystem_Base
class، وعدة فئات فرعية تقوم بتنفيذ طرق مختلفة للاتصال بنظام الملفات المحلي، اعتمادًا على دعم المستضيف الفردي. وبالنسبة لأي قالب أو إضافة بحاجة إلى كتابة الملفات محليًا يجب استخدام عائلة فئات WP_Filesystem.
HTTP API
تم إضافة واجهة برمجة التطبيقات HTTP API27 في ووردبريس 2.728 وتم توسيع وظائفها كذلك في إصدار ووردبريس 2.8، بتوحيد طلبات HTTP لـ ووردبريس. تتولى واجهة برمجة التطبيقات معالجة ملفات تعريف الارتباط، بالإضافة إلى تشفير وفك تشفير gzip، وتجزئة فك الشفرة (إذا كان HTTP 1.1)، والعديد من عمليات بروتوكول HTTP الأخرى. تقوم واجهة برمجة التطبيقات API بتوحيد معايير الطلبات، واختبار كل طريقة قبل الإرسال، وبناءً على إعدادات تكوين الخادم الخاص بك، تستخدم الطريقة المناسبة لإجراء أو تقديم الطلب.
التصاريح وواجهة برمجة التطبيقات API للمستخدم الحالي
الصلاحيات وواجهة برمجة التطبيقات API للمستخدم الحالي29 عبارة عن مجموعة من الوظائف التي ستساعد في التحقق من أذونات المستخدم الحالي وصلاحية القيام بأي مهمة أو عملية مطلوبة، كما يمكن توفير حماية إضافية ضد المستخدمين غير المصرح لهم بالوصول أو تأدية وظائف تتجاوز الإمكانيات المسموح بها.
ترخيص محتوى الورقة البيضاء
النصّ في هذا المستند (لا يشمل شعار WordPress أو العلامة التجارية) المرخصة بموجب CC0 1.0 Universal (CC0 1.0) Public Domain Dedication. يمكنك نسخ العمل، وتعديله وتوزيعه حتى لأغراض تجارية، كل ذلك من دون طلب إذن.
شكر خاص لمحتوى الورقة البيضاء الأمنية لدروبال، والتي قدمت بعض الإلهام.
معلومات إضافية للقراءة
- أخبار ووردبريس https://wordpress.org/news/
- إصدارات ووردبريس الأمنية https://wordpress.org/news/category/security/
- مصادر مطوّري ووردبريس https://developer.wordpress.org/
نُشر بواسطة Sara Rosso
مساهمات من Barry Abrahamson، Michael Adams، Jon Cave، Helen Hou-Sandí، Dion Hulse، Mo Jangda، Paul Maiorana
نسخة رقم 1.0 في مارس 2015
الهوامش والمراجع
- [1] https://w3techs.com/, as of March 2017
- [2] https://make.wordpress.org/core/handbook/about/release-cycle/
- [3] Andrew Nacin, WordPress lead developer, https://vip.wordpress.com/security
- [4] https://wordpress.org/news/2014/08/wordpress-3-9-2/
- [5] https://codex.wordpress.org/Security_FAQ
- [6] https://wordpress.org/news/
- [7] https://wordpress.org/news/2013/10/basie/
- [8] https://www.owasp.org/index.php/Top_10_2013-Top_10
- [9] https://developer.wordpress.org/plugins/security/
- [10] https://codex.wordpress.org/Data_Validation#HTML.2FXML
- [11] https://codex.wordpress.org/Hardening_WordPress
- [12] http://www.openwall.com/phpass/
- [13] https://developer.wordpress.org/plugins/security/nonces/
- [14] https://wordpress.org/news/2013/06/wordpress-3-5-2/
- [15] https://make.wordpress.org/core/2013/06/21/secure-swfupload/
- [16] https://developer.wordpress.org/reference/functions/wp_safe_redirect/
- [17] https://wordpress.org/plugins/about/guidelines/
- [18] https://developer.wordpress.org/themes/getting-started/
- [19] https://codex.wordpress.org/Theme_Review
- [20] https://codex.wordpress.org/Theme_Unit_Test
- [21] https://wordpress.org/plugins/theme-check/
- [22] https://automattic.com/security/
- [23] https://codex.wordpress.org/WordPress_APIs
- [24] https://codex.wordpress.org/Database_API
- [25] https://codex.wordpress.org/Filesystem_API
- [26] https://codex.wordpress.org/Version_2.6
- [27] https://codex.wordpress.org/HTTP_API
- [28] https://codex.wordpress.org/Version_2.7
- [29] https://codex.wordpress.org/Function_Reference/current_user_can