حماية الملفات والمجلدات لمدونة الووردبريس


مصنفة في قسم  : شروحات, نصائح
كتبت بتاريخ  : 12 يناير 2011
عدد المشاهدات  : 
عدد التعليقات  : 12 تعليق 

حماية الملفات والمجلدات لمدونة الووردبريس

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

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

تصاريح الملفات

قبل التكلم عن التصاريح راجع هذه المقالة لموقع الووردبريس الرسمي من هنا , لماذا ساتحدث اليوم عن تصاريح الملفات بكل بساطة ادخل Google Search : php bypass dir restriction وستجد طرق و ثغرات لتخطي المجلدات في البي اتش بي (php) هذا التخطي ليس من حسابك ولكن من حساب اخر معك في السيرفر وهنا ياتي دور التصاريح الذي قد يكون مهما حتى في حالة الاختراق المباشر (يعني حصل على باسورد لوحة التحكم الخاصة بك للووردبريس) هنا يجب ان تزيل من عقلك هذا التصريح 777 الا في بعض المجلدات مثل الكاش, لانه اخطر تصريح يسمح للكل بتعديل الملف او قرائته. التصريح الذي يجب ان يكون للمجلدات هو 755 والملفات 644 على حسب ما كتب في موقع الووردبريس الرسمي

ولكن من وجهة نظري ملفات القوالب و الاضافات خصوصا  يجب ان تأخد التصريح 555 لأكتر حماية هل تعلمون لماذا ؟ هنا سترون كيف يقوم المخترق باستغلال تصاريح هذه الملفات هناك طريقتين سنأخد واحدة. يستغل هذه الملفات اذا كانت معه معلومات لوحة التحكم هنا المخنرق يقوم بالكتابة فوق هذه الملفات ربما يضع كود اندكس الاختراق فقط او ربما لديه مشاريع في السيرفر (يعني الوصول لشيء اخر غير موقعك) اي سيقوم بنسخ بي اتش بي شيل (ومن اشهرها  C 9 9  او R 5 7) وضعت فراغات بسبب الاستضافة المجانية, على اي ملف من ملفات القوالب او الاضافات ويستعرضها مباشرة من المتصفح ويبداء شغله بدون ان تشعر بشيء

ولكن دعنا نبين بعض النقاط ملفات القوالب اذا قمت باعطائهم التصريح 555 فلن تتمكن من التعديل عليها من لوحة تحكم الووردبريس اي يجب عليك اعطائهم التصريح 777 من لوحة تحكم (Cpanel) او (FTP) وبعد الانتهاء من التعديل قم باعطائهم مرة اخرى التصريح 555 ولا تنسى الاضافات هي الاخرى يمكن استغلالها من قبل المخترق , اي عندما يحصل على باسورد موقعك ويرد لصق الشيل في احد ملفات القالب يجد ملفات القالب على النحو التالي :

يجب أن تجعل هذا الملف قابل للكتابة حتى تتمكن من حفظ تغييراتك، اقرأ المزيد عن جعل الملفات قابلة للقراءة

وهنا سيحتاج الى معلومات ftp لهذا ينصح بعدم استعمال نفس باسورد (cpanel). حتى تكتمل الفكرة نبين الفرق بين التصريحين 555 و 644

التصريح 555 حماية من الداخل والخارج ( الخارج تعني من اي موقع تاني معك في السيرفر)

التصريح 644 حماية من الخارج فقط

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

بالنسبة للملفات هناك سكريبت روعة وجدته لتغيير الصلاحيات ولكن سوف نستعمله فقط للملفات العادية ام القوالب فستحتاج تغيرها بنفسك الى 555 هذا السكريبت يقوم بتغير صلاحيات المجلدات الى التصريح 755 و الملفات الى التصريح 644 وانشاء index.htm فارغ في المجلدات

موقع السكريب من هنا ولكن يحتاج تسجيل لتحميل السكريبت , هذا السكريب صمم لجملة بس بيشتغل حتى على الووردبريس او اي سكريبت اخر يمكن تحميله من هنا

طريقة عمل السكريبت:

  1. قم بفك الضغط عن الملف
  2. ارفع الملف sitescan.php الى موقعك

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

http://sitename.com/sitescan.php

لاحظ معي الصور التالية:

بالنسبة للخيار الاول Action required هنا يعرض عليك الاختيار بين مسح للمجلدات او الملفات او حذف السكريبت

بالنسبة للخيار التاني Change permissions هنا اذا قمت بوضع علامة سيقوم السكريبت بتغيير التصريحات حسب اختيارك الاول, هنا اذا اخترت مسح المجلدات فسيقوم بتغيير صلاحيات المجلدات الى 755 و اذا اخترت مسح الملفات فسيقوم بتغيير تصريحاتها الى 644 ,في حالة تركته فارغ سوف يكتفي بعملية مسح وعرض تصريحات الاختيار الذي قمت به في الخيار الاول

بالنسبة للخيار الاخير Add index files يقوم باضافة ملف اندكس فارغ في المجلدات التي لا تحتوي عليه مثل الصور images لاخفاء محتوياتها وهذا نوع من الحماية

بس اذا حبيت تغيير نوع التصريح يمكنك تحرير الملف sitescan.php
السطرين 3 و 4

<?php
// The following 2 lines may be edited to suit your specific needs.
	$directory_permission = '0755'; // The default Joomla! directory permission is - 0755
	$file_permission = '0644'; // The default Joomla! file permission is - 0644

// There is no need to edit below this line -------------------------------------------------

/**
 * @package		sitescan.php
 * @copyright	(C) 2010 Bodvoc Ltd. All rights reserved.
 * @date		15 April 2010
 * @version		1.0.1
 * @license		GNU General Public License Version 2
 * @dependency	PHP 5.1.0 or later
 *
 * Scans the web directory in which it is placed and all sub-directories under the directory
 *
 */
?>

طريقة تغيير التصاريح عن طريق FTP

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

لاحظ معي الصور التالية :

هنا نقوم باختيار Site Manager لادخال معلومات الاتصال وحفظها

  1. New Site : لانشاء معلومات موقع جديد
  2. Mysite : قم بتسميتها بما تشاء
  3. Host : رابط موقعك او عنوان الايبي الخاص باستضافتك
  4. Port : منفد الاتصال ومن المعروف ال ftp يستخدم المنفد 21
  5. Logon type : نوع الاتصال استعمل العادي
  6. User : تجدها في معلومات دخول موقعك
  7. Password : تجدها في معلومات دخول موقعك
  8. connect : للاتصال بالسيرفر

الان بعد الاتصال بموقعك عن طريق ftp كليك يمين على الملف الذي تريد تغيير صلاحياته , بعدها ستظهر هذه النافدة

قم الان بتغيير التصريح بما يناسبك ولا تنسى الملفات تاخد التصريح 644 , واذا اردت تغيير صلاحيات ملفات متعددة دفعة واحدة لاحظ الصورة التالية :

هنا قم بالضغط من لوحة المفاتيح ( Ctrl + A) لكي تتمكن من اختيار جميع المفات وتغيير صلاحياتها دفعة واحدة كما في الصورة

ملف الكونفيج wp-config.php

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

الاولى بواسطة htaccess اي لمنع الوصول هذا الملف نقوم باضافة هذا الكود الى ملف htaccess في المجلد الرئيسي للمدونة

# protect wpconfig.php
<files wp-config.php>
order allow,deny
deny from all
</files>

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

<?php // Modified for Arabic by ar-wp.com

/** إعدادات برنامج ووردبريس المعرب **/

// ** إعدادات قاعدة البيانات - ينمكنك الحصول على هذه المعلومات من مستضيفك ** //
/** اسم قاعدة بيانات ووردبريس */
define('DB_NAME', 'database');

/** اسم المستخدم لقاعدة البيانات */
define('DB_USER', 'user');

/** كلمة المرور لقاعدة البيانات */
define('DB_PASSWORD', '1111111');

/** عنوان خادم قاعدة البيانات */
define('DB_HOST', 'localhost');

/** ترميز قاعدة البيانات */
define('DB_CHARSET', 'utf8');

/** مقارنات قاعدة الببيانات (Collation).
* إذا كنت غير متأكّد أتركها فارغة */
define('DB_COLLATE', '');

/**#@+
 * مفاتيح الأمان.
 * استخدم الرابط التالي لتوليد المفتايح {@link https://api.wordpress.org/secret-key/1.1/salt/}
 * @منذ 2.6.0
 */
define('AUTH_KEY',         '');
define('SECURE_AUTH_KEY',  '');
define('LOGGED_IN_KEY',    '');
define('NONCE_KEY',        '');
define('AUTH_SALT',        '');
define('SECURE_AUTH_SALT', '');
define('LOGGED_IN_SALT',   '');
define('NONCE_SALT',       '');

/**#@-*/

/**
 * بادئة الجداول في قاعدة البيانات.
 * تستطيع تركيب أكثر من مدونة على نفس قاعدة البيانات إذا أعطيت لكل قاعدة بادئة جداول مختلفة
 * استخدم فقط حروف, أرقام وخطوط سفلية!
 */
$table_prefix  = 'wp_';

?>

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

/home/your-user/conect.php

الان ملف ال wp-config.php سيحتوي فقط على هذه المعلومات :

<?php

include('/home/your-user/conect.php')
/**
 * اللغة الافتراضية المستخدمة في هذه النسخة هي العربية
 * إذا أردت أن تكون لوحة التحكم في مدونتك بالانجليزية قم بحذف الحرفين أدناه وهي الحروف ar
 */
define('WPLANG', 'ar');

/**
 * للمطورين: نظام تشخيص الأخطاء
 * قم بتغيير flase إلى true لتمكين عرض الملاحظات أثناء التطوير
 */
define('WP_DEBUG', false);

/* هذا هو المطلوب! توقف عن التعديل. نتمنى لك التوفيق في موقعك! */

/** المسار المطلق لمجلد ووردبريس. */
if ( !defined('ABSPATH') )
	define('ABSPATH', dirname(__FILE__) . '/');

/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');
?>

بالنسبة للمسارات تختلف على حسب كل سيرفر ولوحة التحكم الذي يستعمل يعني ليس بالضرورة ان يكون المسار بالشكل التالي :

include(‘/home/your-user/conect.php’)

وفي النهاية اود ان اشير ان هناك طرق للحماية كتيرة وطرق للاختراق كتيرة وما تطرقنا له في هذه التدوينة اليوم فقط القليل

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

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

حماية الملفات والمجلدات لمدونة الووردبريس بواسطة مجلة ووردبريس, يمكنك نقل ومشاركة التدوينة مع ذكر المصدر الأصلي للموضوع ، مع رابطه, والتدوينة مرخصة بموجب المشاع الابداعي Creative Commons A-NC-SA 3.0.

الوسوم : , , , , , , , , , , ,


عدد التعليقات على هذه التدوينة : 12 تعليق

  1. طارق يناير 14th, 2011

    والله موضوع جيد وممتاز ولازم الواحد يقراه على رواق

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

    ساعود لاقرا الموضوع مرة اخرى لاطبقه بالكامل

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

    شكرا جزيلا لك\\

    طارق

  2. admin يناير 14th, 2011

    مو مشكلة يا اخي انا في الخدمة , بالنسبة للاعدادات المفضلة جميع الملفات العادية تاخد التصريح 644 والمجلدات 755 باستثناء القوالب والاضافات يستحسن التصريح 555 لان ملفات القوالب والاضافات معرضة لتعديل وقد يتسبب في مشاكل كتيرة

  3. الجنيدي يناير 23rd, 2011

    الله يعطيك العافية

    • admin يناير 23rd, 2011

      مشكور أخي العزيز , والله يعطيك العافية وطول العمر

  4. بدر يوليو 29th, 2011

    ربنا يبارك فيك
    موضوع مميز

    • admin يوليو 30th, 2011

      وانت ايضا ربنا يبارك فيك اخي العزيز

  5. akrasoft سبتمبر 13th, 2011

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

    • معاذ سبتمبر 14th, 2011

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

  6. wtd مارس 9th, 2012

    اخي المحترم
    حاولت حماية ملف wp-config.php عن طريق اضافة
    # protect wpconfig.php

    order allow,deny
    deny from all

    في ملف htaccess
    وادى ذلك الى توقف المدونه وظهور رساله:
    500 Internal Server Error

    مالعمل وفقكم الله ؟

    • معاذ مارس 10th, 2012

      اخي تاكد من ادراج الكود كما هو

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

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


  • مجلة الوردبريس
    مارس 10th, 2012




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

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