5 نصائح مهمة لحماية ووردبريس

آخر تحديث 20 ديسمبر 2016بواسطة - wait... مشاهدة/ 23 تعليق
5 نصائح مهمة لحماية ووردبريس

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

اليوم وبعد غياب طويل عن ساحة التدوين اريد ان اتطرق الى بعض النصائح ستساعدكم على زيادة حماية ووردبريس بشكل جيد , وايضا ما جعلني اقوم بهذه التدوينة بعض محاولات الاختراق التي تعرضت لها من قبل, ولا اخفي عليكم فان امر الاختراق لاي مدونة في اسضافة مشتركة (يعني توجد معك مواقع كتيرة في السيرفر) ليس بعيد المنال, مثل الوضع الذي انا فيه الان, المهم انا قمت ببعض الاحتياطات ربما تفيدكم. الان ندخل في صلب الموضوع

اولا قبل ان تطبق اي شيئ من هذه النصائح يجب عليك ان تعرف انا هناك اختلاف بين الاستضافت كل استضافة تقوم باعداداتها الخاص وبعض هذه النصائح قد تسبب لمشاكل مثل forbidden 403 error او 500 internal server error لهذا يجب عليك الحذر واخد نسخة احتياطية لملفات موقع وليس القاعدة لان الامر يتعلق بالملفات فقط

1 – تعطيل محرر الاضافات والقوالب

يمكنك في ووردبريس من تعطيل محرر القوالب والاضافة بواسطة كود بسيط, لكن السؤال هو لماذا اعطلها ؟ سوف تعطلها لسببين وهما :

السبب الأول : تمنع من اخترق حساب الأدمين للووردبريس من تعديل القوالب والاضافات وبهذه الطريقة تضمن عدم التلاعب بملفات القوالب والاضافات وقد تحدثنا عنها في التصاريح

السبب الثاني : وهو انك لست في حاجة لهذه المحرارات اصلا لانها بسيطة بشكل عادي جدا ولا اظن ان شخص يستعملها في تحرير قوالبه او اضافاته ويمكنك الاستغناء عنها باستعمال محرر الاكواد الموجود في cpanel او محرر النصوص Notepad++

حماية محرر القوالب والاضافات

المهم اذا اردت تعطيلها فما عليك سوى اضافة الكود التالي الى ملف wp-config.php وبهذا تمنع اي استغلال لمحرارات Editor

define( 'DISALLOW_FILE_EDIT', true );

2 – حماية بواسطة htaccess

هنا سنعرض بعض الطرق التي تساعدك ايضا في حماية ووردبريس وبطبيعة الحال سأعرض فقط الامور المهمة والتي لن تتسبب لك في اي مشاكل بنسبة لموقعك توجد طرق كتير لكن ليست مضومنة لاختلاف اعدادات الاستضافات

حماية htaccess و wp-config.php

هنا سنقوم بحماية هذه الملفات من القرائة بواسطة تغرات في الاضافات او ملفات الشل بالنسبة لثغرات فقد تكون auth pypass او local file include .مثلا لو وجدت تغرة في اضافة معينة تسمح بقرائة الملفات بالشكل التالي :

http://sitename.com/wp-content/plugins/anyname/options.php?page=../../../wp-config.php

هنا سيكون الدور الفعال للهيتاكسس htaccess بمنع قرائة الملف وعرض خطاء forbidden 403 error يعني لاداعي من الخوف في حالة كانت الاضافة مصابة ولكن تتهاون في ترقية اضافاتك كلما وجد هناك تحديثات لها

الكود الذي سنسنتعمل لحماية wp-config.php و htaccess :

<Files .htaccess>
order allow,deny
deny from all
satisfy all
</Files>

<Files wp-config.php>
order allow,deny
deny from all
satisfy all
</Files>

لا تنسى اذا كانت لديك نطاقات فرعية مركب عليها نسخة اخرى من ووردبريس ان تقوم بهذه الخطوات لها ايضا

منع تصفح مجلدات الموقع

حماية المجلدات

هذه الطريقة لها دور مهم وهو منع اي زائر يحاول تصفح مجلد معين عن طريق المتصفح هنا ستعرض صفحة خطاء 403 لمن يحاول تصفح اي مجلد واهميتهما تكمن في حالة كنت تضع ملفات مهمة في مجلد معين ولا تريد شخص الحصول عليها, والامر بسيط للغاية كل ما عليك هو اضافة هذا الكود التالي في ملف htaccess :

Options -Indexes 

منع تنفيد ملفات في مجلد معين

ان لم تهتم لجميع النصائح التي ذكرت والتي ساذكر بعد هذه ان شاء الله فلا تضيع تطبيق هذه الطريقة . الطريقة تعتمد على منع تشغيل اي سكريبت سواء php او cgi او perl في مجلد معين. يعني هذه الطريقة ستفيدك في حالة قام احد من الوصول الى حساب المدير (admin) في ووردبريس هنا حتى لو حاول رفع ملفات php, cgi او perl عن طريق الوسائط فلن تشتغل وهناك طريقتين لمنع الملفات من التنفيد

ملاحظة يجب عليك اولا انشاء ملف htaccess داخل مجلد uploads غالبا ما يكون على المسار التالي لموقعك :

http://sitename.com/wp-content/uploads

الطريقة الاولى بمنع cgi-script من التنفيد في مجلد معين وذالك بتحديد صيغ هذه الملفات في ملف htaccess بالشكل التالي :

Options -ExecCGI
AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi

على فكرة يمكنك استعمال Options -ExecCGI بدون تحديد الملفات بواسطة AddHandler وسيتم تعطيل اي ملف يشكل خطر

الطريقة الثانية بعرض صيغ ملفات معينة كنص عادي (plain-text) وفي هذا الحالة ان تم رفع ملف php وتم استعراضه من المتصفح فانه سيعرض اكواد php كما لونك تريد تحرير ملف php. كل ما عليك هو اضافة الكود التالي الى ملف htaccess :

AddType text/plain .php .pl .py .jsp .asp .htm .shtml .sh .cgi

الطريقة الثانية هي الافضل لان الطريقة الاولى سيتم عرض اخطاء كتيرة في ملف error_log بالنسبة لي افضل الاولى وانت اختر ما تشاء منها وما يناسبك

منع تنفيد سلسلة من التغراث المحتملة

كما نعلم فالعديد من المخترقين يستعملون بعض الطرق والادوات لتحليل الثغرات الموجودة في موقعك هنا سوف نقوم بمنعهم قبل اختراق الموقع هنا سنستعمل هذه الكود :

RewriteCond %{REQUEST_METHOD} (GET|POST) [NC]
RewriteCond %{QUERY_STRING} ^(.*)(%3C|RewriteCond %{QUERY_STRING} ^(.*)(%3D|=)?javascript(%3A|:)(.*)$ [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)document\.location\.href(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)(%3D|=)http(%3A|:)(/|%2F){2}(.*)$ [NC,OR] ## المرجوا الحظر من هذه القاعدة , يمكن ان تتسبب في بعض مشاكل التوجيه  ##
RewriteCond %{QUERY_STRING} ^(.*)base64_encode(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)GLOBALS(=|[|%[0-9A-Z]{0,2})(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)_REQUEST(=|[|%[0-9A-Z]{0,2})(.*)$ [OR]
RewriteCond %{QUERY_STRING} ^(.*)(SELECT(%20|\+)|UNION(%20|\+)ALL|INSERT(%20|\+)|DELETE(%20|\+)|CHAR\(|UPDATE(%20|\+)|REPLACE(%20|\+)|LIMIT(%20|\+))(.*)$ [NC]
RewriteRule (.*) - [F]

كما تلاحظون في الكود فهو يحتوي على بعض الاكواد التي تدل على بعض طرق الاختراق مثل XSS و SQL-Injection

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

هذا سينفعك في حالة وقع الفأس في الرأس اي اذا قام المخترق بالولوج الى موقعك ورفع سكريبتات لتنفيد الاوامر (أكود خبيثة لادري لما اقول له هذا الاسم 🙂 في الحقيقة هو معروف بالشل لدى العرب وحتى الاجانب) في هذه الحالة هذا الكود سيقوم بمنع تنفيد العديد من الاوامر . لكن قد يتسبب لك بمشاكل مع ووردبريس يجب عليك اختباره وحذف القواعد التي تسبب لك مشاكل

الكود ستجده في ملف نصي هنا

لا تنسى تغيير /home/user/ باسم المستخدم الخاص بك في cpanel قبل نسخ الكود في ملف htaccess

3 – إخفاء الأخطاء البرمجية ل PHP

بالنسبة لاخفاء الاخطاء البرمجية الغرض منها هو حماية اسم المستخدم الخاص بك خصوص لمستعملي cpanel فمكا نعلم ان اسم المستخدم يكون هو مسار الموقع مثال :

/home/mouad

وقد يستعمل هذا الاخير في ما يعرف بال (BruteForce) لكسر الباسورد الخاص بك في الاستضافة. المهم هناك ثلات طرق لاخفائ هذه الاخطاء البرمجية وقد قمت بتجربتها كلها ونجت معي طريقة واحدة وهي التي سأذكرها لكم واذكر الطرق الاخرى ايضا مع اني حاولت استعملها لاكنها لم تنجح معي

الطرق التي ساذكر هنا قمت بايجدها في موقع Perishable Press

الطريقة الاولى باستعمال php.ini

ملاحظة هذه الطريقة ليست حصرية على الووردبريس يمكنكم استعمالها بالنسبة لاي موقع يستعمل اي سكريبت مثل جوملا

هذه الطريقة الوحيدة التي اشتغلت معي على استضافة hostgator وهي سهلة التطبيق الان كل ما عليك هو تتبع الخطوات التالية :

اولا قم بانشاء ملف باسم php_error.log حيث هذا الملف سيتم كتابة كل الاخطاء التي تقع في الموقع داخله دون عرضها في المتصفح ولا تنسى ان تعطيه التصريح 644 لكي يسمح بالكتابة عليه

ثانيا نقوم بانشاء ملف php.ini والذي دوره تعطيل هذه الأخطاء وارسالها الى الملف الذي انشئنا من قبل php_error.log . الام قم بنسخ الكود التالي داخل ملف php.ini :

display_startup_errors = false
display_errors = false
html_errors = false
log_errors = true
ignore_repeated_errors = false
ignore_repeated_source = false
report_memleaks = true
track_errors = true
docref_root = 0
docref_ext = 0
error_reporting = 999999999
log_errors_max_len = 0
error_log = /home/user/public_html/php_error.log

الان قم بتغيير اليوزر في السطر 14 الى اسم المسخدم الخاص بك او بمعنى اخر غير المسار الى المسار المتواجد به ملف php_error.log بعد ذالك قم بحفظ الملف

ثالتا نقوم باضافة قاعدة لملف htaccess لكي يتم إخفاء الاخطاء في جميع مجلدات الموقع وحتى النطاقات الفرعية سيشملها الاخفاء . هنا سنستعمل موديل suPHP لكن ليست كل الاستضافات تقوم بتفعيل, اذا لم يكون مفعل لديك سيحصل خطاء 500 inetrnal server error فيهذه الحالة ستضطر لنسخ ملف php.ini في جميع مجلدات موقعك والامر صعب بطبيعة الحال جرب الحلول التي سنذكرها لاحقا. الان كل ما عليك هو اضافة الكود التالي الى ملف htaccess :

suPHP_ConfigPath /home/user/public_html

رابعا بعد الانتهاء من الخطوات السابقة سنقوم بحماية ملف php.ini و php_error.log عن طريق اضافة قواعد لحماية في ملف htaccess بالشكل التالي :

<Files php.ini>
order allow,deny
deny from all
satisfy all
</Files>

<Files php_error.log>
order allow,deny
deny from all
satisfy all
</Files>

الطريقة الثاني لاخفاء الاخطاء بواسطة htaccess

هذه الطريقة تعتمد على ملف htaccess فقط لكن لا اظنها ستستغل في الاستضافات المشتركة حسبة ما قرأت في احدى المواقع المهم الطريقة سهلة اذا اردت اخفاء الاخطاء كل ما عليك هو اضافة القواعد التالية الى ملف htaccess :

php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off

واذا اردت ان تقوم بتسجيل الاخطاء في ملف معين قم بانشاء ملف باسم php_error.log واضافة القواعد التالية في ملف htaccess :

php_flag  log_errors on
php_value error_log  /home/user/public_html/php_error.log

اذا تشتغلت مع الطريقة بدون مشاكل فلا تنسى ان تقوم بحماية الملف php_error.log باضافة القاعدة التالية :

<Files .htaccess>
order allow,deny
deny from all
satisfy all
</Files>

الطريقة الثالتة عن طريق wp-config.php

هذه الطريقة ايضا لم تنجح معي وهي تعتمد على ادراج اكواد php عادية وليست خاصة فقط للوردبريس يعني ممكن نستعملها في اي سكريبت كل ما عليك هو اضافة الاكواد التالية الى ملف wp-config.php وانت حظك اذا اشتغلت :

@ini_set('log_errors','On');
@ini_set('display_errors','Off');
@ini_set('error_log','/home/user/public_html/php_error.log');

المهم لا تنسى تغيير user الى اسم المستخدم الخاص بك او بمعنى اخر ضع المسار الكامل للملف php_error.log

هذا كل ما يتعلق بإخفاء اخطاء php البرمجية وانصحك بتجربة الطرق الاخيرة قبل استعمال الطريقة الاولى بواسطة php.ini

4 – منع محاولات تسجيل الدخول بواسطة Brute-Force

هنا سنقوم بحماية لوحة تحكم وردبريس بمنع المخترقين من تنفيد عملية bruteforce للحصول على باسوور مدير سكريبت ووردبريس وهناك اضافات عديدة لهذه الغرض انا اقترح عليكم الاضافة Login LockDown الاضافة عن تجربة تقوم بدورها الكامل واعداداتها سهلة جدا

صفحة الاضافة على ووردبريس : http://wordpress.org/extend/plugins/login-lockdown/

اعدادات الاضافة :

Login LockDown - مجلة ووردبريس

كما تلاحظون من خلال الصورة فهذه هي الاعدادات التي استعملها

Max Login Retries : عدد المحاولات لتسجيل الدخول يستسحن تكون ثلاتة

Retry Time Period Restriction : هنا نقوم بتحديد المدة التي يمكن خلالها محاولات تسجيل الدخول الثلاتة من نفس (IP) التي حددنها فوق

Lockout Length : هنا نقوم بمنع او حضر تسجيل الدخول ل (IP) الذي قام بالمحاولات الثلاتة الفاشلة لمدة ساعة

Lockout Invalid Usernames ? هذه الخاصية ستقوم بالمنع ايضا في حالة كان اسم العضو خطاء

Mask Login Errors ? هنا نقوم باخفاء اخطاء تسجيل الدخول

هذا كل ما في الامر بالنسبة لهذه الاضافة

نصائح اخيرة

  1. لا تستعمل باسورد cpanel في ملفات wp-config.php للاتصال بقواعد البيانات
  2. لا تضع مجلدات او ملفات مهمة في ملف robots.txt
  3. لا تتهاون في ترقية ووردبريس والاضافات

نهاية الارسال

هناك طرق اخرى للحماية لم اذكرها مثل عمل باسورد لمجلد wp-admin فقد تطرق لها العديد من الاخوة في الانترنت. الى هنا نكون قد اتممنا هذا الشرح المتواضع واعذروني على التقصير في عرض تدوينات فالوقت اصبح ضيق جدا هذه الايام واذا كان هناك اي استفسار او نقص في الشرح يرجى وضع تعليق ؟ ولا تنسوا الاشتراك في قائمتنا البريدية ولكم جزيل الشكر

5 نصائح مهمة لحماية ووردبريس بواسطة مجلة ووردبريس, يمكنك نقل ومشاركة التدوينة مع ذكر المصدر الأصلي للموضوع ، مع رابطه, التدوينة مرخصة بموجب المشاع الابداعي Creative Commons A-NC-SA 3.0.
2012-06-05T12:29:37+00:00
2016-12-20T22:25:20+00:00

التعليقات23 تعليق

  • محمد سلمى

    شكراً أخي الكريم هذا ما كنت أبحث عنه, أتمنى أن تشرح لنا أيضاً كيفية استخدام ال w3 super cache

    • معاذ

      العفو اخي محمد سلمى
      شرح الاضافة موجود عندي في الموقع بس لو نظرت الى القائمة الجانبية ستجد رابط لشرح الاضافة

  • محمد سلمى

    وتشرح لنا أيضاً كيفية تغيير رابط دخول الموقع مثل:

    http://www.example.com/wp-admin

    • معاذ

      والله هذه الطريقة اخاف تسبب مشاكل في حالة الترقية او بعض الاضافت لهذا لاحب ان اتحدث فيها

  • بوالرباب محمد

    السلام عليكم
    أخي معاد موضوعك جميل ويتطرق إلى أهم مايجب على كل مدون الانتباه اليه في مدونته وهو الحماية من الاختراق، لكن في موضوعك دكرت خمسون بالمائة فقط ولم تدكر لنا طريقة تغيير عنوان وأي بي السيرفر والمواقع التي توفر هده الخدمة، لأنه إن افترضنا أن حماية مدونتنا سليمة. والمخترق لن يبقى مكتوف الايدين، بل سيخترق موقع اخر من نفس السيرفر ومنه سيستعمل سكريبت لتعطيل الساف مود، ومنها سيتسلل الى موقعك ولو كان مستضيفا لدى ميكرسوفت…
    وفي الاخير تدكر دائما أن تقنيات الهاكرز أصبحت في تطور مستمر أكتر من ماتتصور…

    • معاذ

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

      الشيء الذي تتحدث عنه اخ ابو الرباب مستحيل في الاستضافات المشتركة لانه يكون لديك في النظام صلاحيات اليوزر بس ممكن تغيير IP بواحد خاص بك اذا طلبت الامر من مستضيفك
      اما اذا ادرت خدمة مجانية تقوم بهذا الغرض فهناك cloudflare لكن هذه الخدمة صممت لغرض اخر وع ذالك فممكن تستغلها لتغييرعنوان اليبي الخاص بموقعك ولو ان هناك طريقة لمعرفة العنوان ببساطة

      بالنسبة ل “بل سيخترق موقع اخر من نفس السيرفر ومنه سيستعمل سكريبت لتعطيل الساف مود”
      اذا عطل السيف مود الصلاحيات راح تلعب دورها والهيستكسس ايضا في منعه من قرائة الملفات المهمة
      خلينا من ميكروسوفت اعدادت الويندوز غير الموجودة في نظام linux او unix
      يا رجل انا ادري انه كل يوم يكون تغرات لخطي السيف مود و sql-injection و xss الى اخره
      لكن تصريحات الملفات اذا تم اعدادها بشكل جيد فلا يستطيع احد قرائتها سوى اذا كان لديه صلاحيات الروت في النظام

      اذا كان في وقت ممكن اعمل فيديو احسن هو الذي ممكن تصلكم منه الفكرة بسرعة

  • Fares El Farissi

    يعطيك العافية أخ معاد على الموضوع الرائع
    نتمنى الافادة و التوفيق للجميع

    • معاذ

      الله يعافيك ويوفقك انت ايضا اخي العزيز ومشكور على المرور العطر

  • محمد من البيضاء

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

    بارك الله فيك أخي معاذ على المعلومات المتميزة التي نحن في حاجة إليها فعلا، و على كرمك أيضا في الرد على المعلقين :-).

    هل يمكن القيام بهذه التعديلات من واجهة التحكم “vDesk” التي تستعملها خدمة StartLogic للاستصافات.

    و جزاك الله خيرا.

    • معاذ

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

      اخي الامر لا يتعلق بالواجهة
      بالنسبة لتصاريح فممكن تغييرها
      اما بالنسبة لاستعمال ال htaccess فبعض الاستضافات تقوم بمنعه
      اذا كنت تستعمل الروابط الدائمة المخصصة بدون مشاكل فاضن ان الاستضافة تسمح باستعمال htaccess
      لكن جرب وشوف اذا في مشاكل مع لوحة التحكم والاضافات والقواعد التي تتسبب لك في مشاكل احذفها

  • wassime

    السلام عليكم يا أخ معاد و بارك الله فيك على الموضوع و الله من زمان أنتظر عودتك
    أخي بالنسبة ل منع تنفيد سلسلة من التغراث المحتملة : عند إدخال الكود المدكور في هتاكيسس
    تظهر صفحة الخطئ 505 Internel error
    عودة موفقة و شكرا

    • معاذ

      وعليكم السلام ورحمة الله وبركاته
      حاول تشيل السطر الرابع قد يكون هو السبب في المشكل
      انا ايضا واجهتني مشكلة مع ذالك السطر بالنسبة للبعض الاضافات

      عذرا اخي العزيز على التاخيير وجدت رسالتك في السبام وهذا بسبب استعمال google.com

  • هارتلس

    السلام عليكم ورحمة الله وبركاته
    فقدناك يا رجل في عالم التدوين 🙂

    بالنسبة للتصريحات يا اخي معاذ
    لو غيرنا بعض التصريحات ألا يكون هناك
    بعض الملفات لا تعمل او تؤدي دورها بالكامل
    بسبب تغيير في تصريحها ؟

    شكرا لموضوعك

    • معاذ

      وعليكم السلام ورحمة الله وبركاته
      العفو اخي العزيز
      غيير التصريحات فقط للملفات التي تحتاج اعادة الكتابة اما الباقي فليس بمشكل
      بالنسبة لك لاتغيير شيء لاحظت انه عندما اردت مرة ان احرر ملف في القالب اننني لا استطيع التحرير من ووردبريس
      ربما استضافتك قامت باعدادات خاصة لتصريحات

  • اYuzar

    اخي انا متخصص في اختراق المواقع واجد سهولة في اختراق الورد بريس حتى لو غيرت التصاريح لان لدي اكواد تمكنني من تغيير التصاريح هه
    حتى لو قمت بحماية موقعك لا تستطيع فعل اي شيء
    وايضا الروت اصبح من سهل اخده من السيرفر
    الطريقة الوحيدة هي تعطيل تحرير القوالب وايضا البلوجين
    و السلام عليكم ورحمة الله

    • معاذ

      اخي العزيز الذي اعرفه انه يمكنك قرائة الملفات وليس تعديل التصريحات ما عدى اذا عندك بطبيعة الحال ثغرة 0day
      وعلى ما يبدو من كلامك بخصوص اخد صلاحيات الروت انه نزلت ثغرات جديدة للكيرنل غير التي اعرفها
      الله يستر علينا

  • Saudi Tech

    فعلا المعلومات هذه غالية جدا ، ونتمنى المزيد فى القادم ان شاء الله

  • اعرف امكانيات موبايلك

    أخى اشكرك بالفعل على هذه المعلومات القيمة

  • Hex

    مثل هذه الخطوات لازم تعملها شركات الاستضافة لعملائها مجانا لحماية الموقع.
    شكرا أخي معاذ

    • معاذ

      العفو اخي العزيز hex في شركات تقوم بها وفي شركات تفضل تعطيل safe mode

  • ASHRAF

    بارك الله فيكم ونفع بكم ممكن اخ معاذ اعرف القالب حقكم هذا متاجولا خاص !!

    • معاذ

      الله يبارك فيك لا ادري ماذا تقصد ؟

أضف تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *


شروط التعليق :

1 - المرجوا الابتعاد عن كتابة تعليقات بنمط (يعطيك العافية)، (روعة)، (ممتاز)، (مشكوووور)، (ابداع).

2 - زاوية التعليقات هي جزء مكمّل للموضوع الذي قرأته للتو. حاول أن تحصر تعليقك في صلب الموضوع حتى نستثمر هذا التعليق لكسب المزيد من الفائدة سواءً عن طريق مناقشة الموضوع أو عن طريق إضافة معلومات مكمّلة أو إبداء ملاحظات أخرى في نفس السياق.

معاذ أشملي مشرف موقع (212) 689-383-644 المغرب webmaster@mwordpress.net