السلام عليكم ورحمة الله وبركاتة
مقدمة :
هل تساءلت يوماً ما إن كانت الووردبريس برنامج محمي بشكل كافي؟
الإجابة نعم. حيث أن الووردبريس مبنية على أحدث التقنيات الأمنية وأيضا يصدر تحديثات وسد للثغرات الأمنية بشكل دوري. وتتم مراقبتها وصيانتها بواسطة مجموعة كبيرة من المطورين الذين يهتمون بشدة بالحماية.
إن كانت WordPress آمنة إذن فلماذا قمنا بعمل هذا الدليل حول تأمين وحماية ووردبريس؟ الحقيقة هى أن جزأ كبير من حماية موقعك يقع على عاتقك كمدير موقع وأيضا يحتاج متابعة مستمرة ، يتضمن ذلك عمل جدران نارية وتتبع الاختراقات وكشفها وتتبع أى تغييرات تحدث بدون تدخلك وأى وصول غير مسموح به للملفات او قواعد البيانات وإخفاء العلومات الحساسة والكثير من ذلك.
تعمل تقريبا أكثر من 30% من مواقع الانترنت على الووردبريس وهذه الشعبية الكبيرة جعلت الووردبريس هدفاً للهاكرز ومجرمي الإنترنت.
ولزاماً منا على مساعدة مالكى المواقع لحماية أنفسهم تم عمل هذا الدليل لمعرفة الطرق التي يمكنك بها حماية موقعك من الهجمات وحتى لا تكون فريسة سهلة للاختراق.
حماية الملفات وقواعد البيانات
قبل تنصيب ووردبريس
يجب دائما قبل تنصيب نسخة وودبريس جديدة استخدام أحدث نسخة، قم بتحميلها من الموقع الرسمي
1- قم بتغيير بادئة الجداول لقاعدة البيانات
2- استخدام أكواد AUTH_KEY جديدة
تغيير بادئة الجداول
يتم تعديلها فى عميلة التنصيب وأيضا فى ملف الكونفيج wp-config.php تجد السطر التالي :
كود:
$table_prefix = 'wp_';
كود:
$table_prefix = 'website1_';
ماذا إن كان موقعى فعلا تم تنصيبه قبل فترة وليس جديد؟
إذا لم يكن لديك خبرة كافية لتغيير بادئة الجداول يدويا يمكنك استخدام اضافة Change Table Prefix
استخدام أكواد AUTH_KEY جديدة
هذه مفاتيح سرية تحمي جلسات المستخدم عن طريق تشفير ملفات الارتباط (Cookies)، أيضا قبل بدأ التنصيب يمكنك إنشاء مفاتيح جديدة واستخدامها ويمكنك تغيير هذه المفاتيح حتى بعد الانتهاء من التنصيب
يمكنك استخدام الرابط التالي لإنشاء مفاتيح سرية جديدة
https://api.wordpress.org/secret-key/1.1/salt/
ثم قم بإستبادالها فى ملف wp-config.php
هذه المفاتيح يكون لها هذا الشكل :
كود:
define('AUTH_KEY', '-I *qo0Yw?.2~Ho+GNc.~ZT3p-[47^4kFrfH#{B@oUucCKw0}7_)Cm{yO59EW9eI'); define('SECURE_AUTH_KEY', '^bAH} CSru9k11oSSJP]lwdm-Lz$MOGL-D8(zeq+Q5DIEQJ;F|1wcsOM:vSg`ek+'); define('LOGGED_IN_KEY', '{O;cR{a+Q4oq*|qwSi>5MN#~KF-7Y+kqOxj<bh3[}roQt<bS_8VL R>>yw-|z{=O'); define('NONCE_KEY', '+6TSUX9slyhb2..MrBb^Nk_cID/ejuWbHSbE uS%cfOHt~YCrfx0E?AcKIko$2sa'); define('AUTH_SALT', 'ti&~t1PueV]YbjZMZ+Sm*|ZJ&q2!vz~d1P;M%No<,#}C^%DL|p+4I2<Ts(Ui$xJR'); define('SECURE_AUTH_SALT', 'Uk^i[)!-Jx{eF|#b`(M5HaIa;+AYxYH0JlQ )>c[4~sQ-nss)f)}~j.5?()6<l'); define('LOGGED_IN_SALT', '$6)-..?7pEjL_WuCGfrje:/+9eI|;</++oO0]!:#S(gF|PHRfy})2:&OHI%{Uf.*'); define('NONCE_SALT', 'f;jR]zy!xE$xvA|EJY;m(kp_m-T9v2Q-612.%[Wof`=s10R.q8;+zg{=B4tLP Hi');
ما بعد تنصيب الووردبريس
بعد الانتهاء من تنصيب الووردبريس، يجب أن تقوم بحذف المدير الذي قمت بإنشاءه فى عميلة التنصيب وإنشاء عضوية ادارية جديدة بالإضافة إلى العضويات الأخرى المراد إضافتها.
يجب أن تتجنب استخدام الاسماء الإدارية الشائعة مثل admin او administrator والتي يتم استخدامها بكثرة فى عمليات تنصيب الووردبريس وغيرها.
- تغيير العضو الإداري admin من خلال phpmyadmin من خلال جدول wp_users يتم تغيير الاسم admin وتعديله إلى اى شىء آخر كما تحب كما بالصورة

- قم بإلغاء تفعيل إشعارات pingbacks و trackbacks من لوحة تحكم الووردبريس من Settings ثم Comments، لأنها قد تستخدم فى هجمات حجب الخدمة DDoS Attack
- قٌم بعد ذلك بحماية هذه الملفات من الاختراق وذلك عن طريق وضع الكود التالي فى بداية ملف .htaccess الرئيسي بموقعك
كود:
#Deny Directory Listing Options - Indexes #Block sensitive files <files.htaccess> Order allow,deny Deny from all </files> <files wp-config.php> Order allow,deny Deny from all </files>
إن كانت WordPress آمنة إذن فلماذا قمنا بعمل هذا الدليل حول تأمين وحماية ووردبريس؟ الحقيقة هى أن جزأ كبير من حماية موقعك يقع على عاتقك كمدير موقع وأيضا يحتاج متابعة مستمرة ، يتضمن ذلك عمل جدران نارية وتتبع الاختراقات وكشفها وتتبع أى تغييرات تحدث بدون تدخلك وأى وصول غير مسموح به للملفات او قواعد البيانات وإخفاء العلومات الحساسة والكثير من ذلك.
تعمل تقريبا أكثر من 30% من مواقع الانترنت على الووردبريس وهذه الشعبية الكبيرة جعلت الووردبريس هدفاً للهاكرز ومجرمي الإنترنت.
ولزاماً منا على مساعدة مالكى المواقع لحماية أنفسهم تم عمل هذا الدليل لمعرفة الطرق التي يمكنك بها حماية موقعك من الهجمات وحتى لا تكون فريسة سهلة للاختراق.
حماية الملفات وقواعد البيانات
قبل تنصيب ووردبريس
يجب دائما قبل تنصيب نسخة وودبريس جديدة استخدام أحدث نسخة، قم بتحميلها من الموقع الرسمي
قم بتغيير بادئة الجداول لقاعدة البيانات
استخدام أكواد AUTH_KEY جديدة
1) تغيير بادئة الجداول
يتم تعديلها فى عميلة التنصيب وأيضا فى ملف الكونفيج wp-config.php تجد السطر التالي
كود:
كود:
$table_prefix = 'wp_';
كود:
كود:
$table_prefix = 'website1_';
ماذا إن كان موقعى فعلا تم تنصيبه قبل فترة وليس جديد؟
إذا لم يكن لديك خبرة كافية لتغيير بادئة الجداول يدويا يمكنك استخدام اضافة Change Table Prefix
2) استخدام أكواد AUTH_KEY جديدة
هذه مفاتيح سرية تحمي جلسات المستخدم عن طريق تشفير ملفات الارتباط (Cookies)، أيضا قبل بدأ التنصيب يمكنك إنشاء مفاتيح جديدة واستخدامها ويمكنك تغيير هذه المفاتيح حتى بعد الانتهاء من التنصيب
يمكنك استخدام الرابط التالي لإنشاء مفاتيح سرية جديدة
https://api.wordpress.org/secret-key/1.1/salt/
ثم قم بإستبادالها فى ملف wp-config.php
هذه المفاتيح يكون لها هذا الشكل
كود:
كود:
define('AUTH_KEY', '-I *qo0Yw?.2~Ho+GNc.~ZT3p-[47^4kFrfH#{B@oUucCKw0}7_)Cm{yO59EW9eI'); define('SECURE_AUTH_KEY', '^bAH} CSru9k11oSSJP]lwdm-Lz$MOGL-D8(zeq+Q5DIEQJ;F|1wcsOM:vSg`ek+'); define('LOGGED_IN_KEY', '{O;cR{a+Q4oq*|qwSi>5MN#~KF-7Y+kqOxj<bh3[}roQt<bS_8VL R>>yw-|z{=O'); define('NONCE_KEY', '+6TSUX9slyhb2..MrBb^Nk_cID/ejuWbHSbE uS%cfOHt~YCrfx0E?AcKIko$2sa'); define('AUTH_SALT', 'ti&~t1PueV]YbjZMZ+Sm*|ZJ&q2!vz~d1P;M%No<,#}C^%DL|p+4I2<Ts(Ui$xJR'); define('SECURE_AUTH_SALT', 'Uk^i[)!-Jx{eF|#b`(M5HaIa;+AYxYH0JlQ )>c[4~sQ-nss)f)}~j.5?()6<l'); define('LOGGED_IN_SALT', '$6)-..?7pEjL_WuCGfrje:/+9eI|;</++oO0]!:#S(gF|PHRfy})2:&OHI%{Uf.*'); define('NONCE_SALT', 'f;jR]zy!xE$xvA|EJY;m(kp_m-T9v2Q-612.%[Wof`=s10R.q8;+zg{=B4tLP Hi');
تأكد أن تقوم بتغيير هذه المفاتيح كل فترة احترازياً أو ليتم تسجيل خروج كافة الأعضاء.
ما بعد تنصيب الووردبريس
بعد الانتهاء من تنصيب الووردبريس، يجب أن تقوم بحذف المدير الذي قمت بإنشاءه فى عميلة التنصيب وإنشاء عضوية ادارية جديدة بالإضافة إلى العضويات الأخرى المراد إضافتها.
يجب أن تتجنب استخدام الاسماء الإدارية الشائعة مثل admin او administrator والتي يتم استخدامها بكثرة فى عمليات تنصيب الووردبريس وغيرها.
- تغيير العضو الإداري admin من خلال phpmyadmin من خلال جدول wp_users يتم تغيير الاسم admin وتعديله إلى اى شىء آخر كما تحب كما بالصورة
attachment.php
- قم بإلغاء تفعيل إشعارات pingbacks و trackbacks من لوحة تحكم الووردبريس من Settings ثم Comments، لأنها قد تستخدم فى هجمات حجب الخدمة DDoS Attack
- قٌم بعد ذلك بحماية هذه الملفات من الاختراق وذلك عن طريق وضع الكود التالي فى بداية ملف .htaccess الرئيسي بموقعك
كود:
كود:
#Deny Directory Listing Options - Indexes #Block sensitive files <files.htaccess> Order allow,deny Deny from all </files> <files wp-config.php> Order allow,deny Deny from all </files>
منع الوصول غير المسموح به لبعض الملفات الهامة داخل مجلد الادمن wp-admin ويتم ذلك عن طريق وضع الكود التالي داخل ملف .htaccess الموجود داخل مجلد /wp-admin
كود:
#Block installation files <files install.php> Order allow,deny Deny from all </files> <files setup-config.php> Order allow,deny Deny from all </files>
تعديل تصاريح الملفات والمجلدات
يجب التأكد من سلامة التصاريح للملفات والجلدات لأنه التصاريح الخطأ قد تكون أحد العوامل المسببة لأختراق موقعك.
يمكنك التعديل تصاريح الملفات والمجلدات من خلال مدير المجلدات File Manager الموجود فى السى بانل CPanel أو من خلال برنامج FTP
1- التصريح السليم للمجلدات هو 755
2- التصريح السليم للملفات هو 644
لكن هناك ملفين يجب ان يتم تغيير التصاريح لهم للحد من الوصول لهم ومن أجل الحماية :
1- قم بتغيير تصريح ملف wp-config.php إلى 600
2- قم بتغيير تصريح الملف .htaccess إلى 604
منع تشغيل ملفات php فى بعض المجلدات
رغم أن لوحة تحكم الووردبريس تمنع رفع ملفات بامتداد php إلا انه يجب الاحتياط والغاء تشغيل روابط php بشكل مباشر من بعض المجلدات مثل wp-content والمجلدات الفرعية داخله
لعمل ذلك نقوم بالتعديل على ملف .htaccess الموجود داخل مجلد wp-content ووضع الكود التالي فى أوله
كود:
<FilesMatch ".*\.(pl|cgi|py|shtml|php|sh|perl|php3|php5|phtml)$"> Order Allow,Deny Deny from all </FilesMatch>
(فى حال كان لديك اى اضافات تخص الكاش، يجب ان تقوم بإفراغ الكاش بعد كل تعديل على ملف .htaccess)
تعطيل تحرير الملفات من لوحة التحكم
هذه تعتبر نقطة حماية اضافية للحد من الاستخدام غير المسموح به وعدم تعديل الملفات فى حال اختراق اى عضوية ادارية وأيضا للحد من عبث أو خطأ أحد الإداريين.
لتفعيل هذه الخاصية يتم اضافة السطر التالي داخل ملف wp-config.php
كود:
define( 'DISALLOW_FILE_MODS', true );
يتم ذلك عن طريق اضافة السطر التالي داخل ملف wp-config.php
كود:
define( 'DISALLOW_FILE_MODS', true );
استخدم شبكة محتوى CDN كـ DNS
طبعا نعرف جميعا أهمية استخدام شبكة محتوى أو ما نسميها CDN اختصاراً لـ Content Delievery Network، فاستخدامها يمكن أن يُحسن من سرعة موقعك بشكل ملحوظ وايضا من حماية الموقع عن طريق عدة نقاط منها:
1- تفعيل جدار ناري يتم تحديثه باستمرار ضد الاستخدامات الخبيثة وهجمات حجب الخدمة DDoS
2- منع هجمات Brute force attacks لأنها تسخدم شبكة سيرفرات موزعة جغرافيا مما يقلل من تأثير مثل هذه الهجمات، وأيضا يتم تطبيق قواعد للحد من مثل هذه الهجمات وكشفها تلقائيا. عادة ما تكون هذه الهجمات متعلقة بهجمات DoS, DDoS أو Distributed attack
3- إخفاء عنون IP الحقيقي للخادم المستضيف لموقعك مما يمنع الهجمات المباشرة على المستضيف الحقيقي لموقعك
أنصح بإستخدام CloudFlare كـ CDN لموقعك، ذلك سُيحسن حماية وسرعة تصفح موقعك. خدمة كلاود فلير متوفرة مع كافة خطط الاستضافة المقدمة من استضافة الدعم العربي ويمكن تفعيلها مباشرة من لوحة التحكم CPanel.
النسخ الإحتياطي لموقعك
يجب التأكد من النسخ الاحتياطي الكامل لموقعك وقواعد البيانات سواء من جانبك أو من جانب الإستضافة. قد لا تحتاج إلى استرجاع نسخة احتياطية أبداً ولكن لابد الأخذ فى الاعتبار أنه قد يتوقف تواجد واستمرارية موقعك على استرجاع نسخة احتياطية فى أحد الأيام بسبب خطأ فنى او اختراق أو اى سبب كان.
النسخ الاحتياطي ينقسم إلى نسخ احتياطي داخلى وخارجي. النسخ الاحتياطي الداخلى يكون على نفس الاستضافة ونفس قرص التخزين هذا يعتبر أمر جيد فى حالات الاختراق أو الأخطاء الفنية للبرامج التشغيلية على السيرفر ولكن النسخ الاحتياطي الخارجي قد يكون له الفضل فى استرجاع موقعك فى حالات الأزمات مثل توقف القرص الصلب عن العمل أو حدوث مشاكل كبيرة فى مركز البيانات المستضيف لخادمك.
ما أنصح به لخدمة النسخ الإحتياطي:
1- الاحتفاظ بعدد 3 نسخ احتياطية لموقعك
2- الاحتفاظ بالنسخ الاحتياطية بصيغتين مختلفتين
3- الاحتفاظ بنسخة احتياطية واحدة على الأقل خارجية
فى حال حدوث أزمات او كوارث، فإنه قد يكون من غير المفيد أن تكون كافة النسخ الاحتياطية فى نفس المكان أو نفس الصيغ. عموما تأكد ان تقوم بتحديث النسخ الاحتياطية دائما بشكل دوري.
تأمين تسجيل الدخول والجلسات Sessions
تفعيل البروتوكول الآمن HTTPS
تفعيل استخدام شهادة حماية SSL لموقعك أو ما يسمى بالبروتوكول الآمن للحماية من هجمات MITM (Man-in-the-Middle)، يتم استخدام شهادة حماية عندنا يتعلق الموضوع بنقل وتشفير بيانات حساسة او بيانات العملاء بين زوار الموقع والخادم.
لتفعيل البروتوكول الآن تقوم بتغيير الرابط من http إلى https من لوحة تحكم الووردبريس وأيضا يجب ان يتم تركيب شهادة حماية على سيرفر الاستضافة الخاصة بك. قد يتم تقديم شهادة الحماية مجاناً من شركة الاستضافة وقد تحتاج إلى شرائها من مزود الخدمة لديك أو أى شركة معروفة.
لدينا فى استضافة الدعم العربي نقدم شهادة حماية SSL مجانية مع كافة خطط الاستضافة مقدمة من cPanel (powered by Sectigo).
لابد من التأكد أولا ان لديك شهادة حماية مفعلة على استضافة موقعك، قم بعدها تقوم بوضع الكود التالي فى ملف wp-config.php
كود:
define('FORCE_SSL_LOGIN', true); define('FORCE_SSL_ADMIN', true);
تغيير مسار مجلد الأدمن wp-admin
يتم التعرف اوتوماتيكاً على مجلد الأدمن بعد معرفة ان الموقع تم بناءه بواسطة ووردبريس ومن ثم تأتى مرحلة تجربة اختراق الموقع بعدة طرق منها تجربة كلمات مرور كثيرة bruteforce attack.
لذلك تغيير مسار مجلد الأدمن يضيف طبقة حماية اضافية لموقعك، يمكن عمل ذلك بواسطة العديد من الإضافات الموجودة على موقع ووردبريس وننصح بهذه الإضافة WPS Hide Login
تحديد عدد محاولات تسجيل الدخول
يمكن أن يتم حظر تسجيل الدخول لمدة دقائق او ساعات أو حظر دائم فى حال تم تجربة تسجيل الدخول لعدة مرات معينة يتم تحديدها مسبقاً. هذا يمنع البوتات من استكمال هجمات Brute force attack لأنه فى حال التجربة عدد معين من المرات تسجيل الدخول يتم حظر الايبى من الدخول وبذلك يتم ايقاف الهجوم أو جعله أصعب.
هذه الخاصية موجودة بالفعل فى إضافة الحماية Wordfence، وأيضا تتوفر هذه الميزة فى هذه الإضافات:
1- Limit Login Attempts (miniorange)
2- Limit Login Attempts Reloaded
3- Loginizer
أيضا توجد هذه الخاصية فى إضافات الفيروول (الجدار الناري)
استخدم إضافة فيروول Firewall
ليس المقصود هنا عمل جداري ناري على لوحة التحكم wp-admin ولكن المقصود به فحص وتحليل كافة الطلبات المقدمة للموقع WAF ( Web Application Firewall )، تقريبا نفس طريقة عمل إضافة ModSecurity على سيرفرات CPanel حيث يتم اضافة قواعد Rules فى حال مطابقتها للطلب يتم حظرها. يُستخدم الجدار الناري هذا فى منع محاولات اختراق مثل SQL Injection و هجمات Brutforce والاستغلال الخبيث وغيرها الكثير.
توجد إضافات كثيرة لعمل الجدار الناري Firewall منها :
1- Wordfence Security
2- All in one security and firewall
3- iThemes Security
استخدام Security Headers
يمكن تحسين أمان موقعك من خلال تحسين Headers التي يتم إرسالها من خادم الاستضافة إلى المتصفح.
يمكنك البدأ بأول خيار X-Frame-Options الذي يمنع فتح صفحات موقعك فى إطار خارجى iframe
عن طريق اضافة السطر التالي إلى ملف .htaccess لموقعكـ، فأنت بذلك تخبر المتصفحات أن الاطارات أو الفريم iframe يمكنك فتحه فقط من داخل اسم النطاق الحالى:
كود:
Header set X-Frame-Options SAMEORIGIN
استخدم الكود التالي للسماح لهذا النطاق وحظر البقية
كود:
Header set X-Frame-Options "ALLOW-FROM https://example.com/"
كود:
Header set X-XSS-Protection "1; mode=block"
وايضا يمكنك استخدام هذه الإضافة HTTP Headers فهى أفضل وأسرع وتعطيك ان شاء الله تقييم A فما فوق وبالأسفل صور لموقع قمت بالعمل عليه يمكنك مراجعة الصور للمزيد من المعلومات والإرشاد


بعدين نرجع لقائمة الخيارات مرة أخرى ونختار الخيار التالي

قم بتعديل قيمة X-Powered-By لأى شىء على كيفك

لعمل اختبار يمكنك فتح الموقع التالي والتجربة
Analyse your HTTP response headers
وإن شاء الله تحصل على نتيجة A أو A+ كما بالصورة
( الموقع اللى تم الشرح عليه هو موقع المقال )

بالتوفيق لكم.