حماية ووردبريس الشاملة WordPress Security

السلام عليكم ورحمة الله وبركاتة
 
 
 



مقدمة :

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

إن كانت 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>
- تأكد من التشييك على ملف robots.txt الموجود داخل المجلد الرئيسي لموقعك فقد يحتوى على بيانات حساسة، تأكد من أنك لم تضع مسار ملفات او مجلدات لا تريدها ان تظهر للعلن.

تعديل تصاريح الملفات والمجلدات

يجب التأكد من سلامة التصاريح للملفات والجلدات لأنه التصاريح الخطأ قد تكون أحد العوامل المسببة لأختراق موقعك.
يمكنك التعديل تصاريح الملفات والمجلدات من خلال مدير المجلدات 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>
هذا يجعل فى حال اختراق الملفات ورفع أى أكواد خبيثة داخل مجلد wp-content لا يمكن طلبها بشكل مباشر من المتصفح

(فى حال كان لديك اى اضافات تخص الكاش، يجب ان تقوم بإفراغ الكاش بعد كل تعديل على ملف .htaccess)

تعطيل تحرير الملفات من لوحة التحكم

هذه تعتبر نقطة حماية اضافية للحد من الاستخدام غير المسموح به وعدم تعديل الملفات فى حال اختراق اى عضوية ادارية وأيضا للحد من عبث أو خطأ أحد الإداريين.
لتفعيل هذه الخاصية يتم اضافة السطر التالي داخل ملف wp-config.php

كود:
define( 'DISALLOW_FILE_MODS', true );
أيضا هناك خيار آخر يمكنك اضافته فقط بعد الانتهاء من انشاء الموقع ويستخدم لمنع اضافة أى ثيمات او اضافات جديدة
يتم ذلك عن طريق اضافة السطر التالي داخل ملف wp-config.php

كود:
define( 'DISALLOW_FILE_MODS', true );
لا تنسي أن تقوم بتعطيل هذا السطر فى حال التعديل على الموقع سواء أردت تركيب إضافات أو ثيمات عن طريق وضع // فى بداية السطر او تعديل true إلى false فى السطر المُضاف.

استخدم شبكة محتوى 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);
بعدها للتقليل من أخطاء شهادة الحماية كأخطاء Mixed content وغيرها يفضل تركيب اضافة Really Simple SSL

تغيير مسار مجلد الأدمن 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/"
لزيادة أمان الموقع ضد هجمات XSS ( Cross site scripting ) على المتصفحات القديمة

كود:
Header set X-XSS-Protection "1; mode=block"
لا أريد ان أطيل عليكم بشرح تعليمات الـ Security Headers لأنها طويلة وتحتاج شرح مطول، لذلك البحث فى جوجل عن htaccess Security Headers لمزيد من المعلومات بالتفصيل
وايضا يمكنك استخدام هذه الإضافة HTTP Headers فهى أفضل وأسرع وتعطيك ان شاء الله تقييم A فما فوق وبالأسفل صور لموقع قمت بالعمل عليه يمكنك مراجعة الصور للمزيد من المعلومات والإرشاد





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



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



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



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