[شرح] كيف تحمي ملف الإعدادات configuration.php

كل ما يتعلق بحماية و تأمين جوملا! وتحسين سرعة التنفيذ والأداء

Moderators: sherif, General Support Moderators

Locked
I-MAG
Joomla! Guru
Joomla! Guru
Posts: 960
Joined: Sat Oct 14, 2006 5:25 pm
Location: Kuwait

[شرح] كيف تحمي ملف الإعدادات configuration.php

Post by I-MAG » Sat Jun 05, 2010 3:30 pm

السلام عليكم.

يُعد ملف ال configuration.php عصبا رئيسا للموقع، وفيه العديد من المعلومات الحساسة. ولهذا كثيرا ما يستهدفه المخترقون.

سأشرح هنا كيفية نقل هذا الملف خارج مجلد ال public_html ليكون بعيدا من أيدي المخترقين، أو يصعب عليهم الوصول إليه.

أرجو بداية أخذ نسخة احتياطية من جميع الملفات التي عملت عليها تحسبا لأي طارئ.

ولا تنسوني من دعائكم الطيب إذا استفدتم من هذا الشرح.

(1)
بداية، ادخل بال FTP أو ال File Manager إلى حسابك، وإلى المجلد الرئيس
Home Directory
وأقصد بالمجلد الرئيس هو المجلد الذي يعلو المجلد الذي تضع فيه ملفاتك.

المجلد الذي تضع فيه ملفاتك يسمى public_html أو htdocs

لاحظ هذه الصورة:
Image
المجلد site - demo هو المجلد الذي أعنيه.

وهذا هو الخيار الأول في هذه الصورة إذا كنت ستدخل عبر ال file manager
Image

(2)
بعد ذهابك إلى المجلد الرئيس، اعمل مجلدا داخله، فيكن اسمه مثلا
secretconfig

(3)
أرفع ملف ال configuration.php إلى مجلد ال secretconfig

(4)
اذهب إلى
الملفين التاليين في جملا، وعدلهما:
includes/defines.php
administrator/includes/defines.php

(5)
التعديل سيكون في السطر التالي لكل من الملفين

Code: Select all

define( 'JPATH_CONFIGURATION', JPATH_ROOT.DS.'/..'.DS.'[u]secretconfig[/u]');
لاحظ أننا وضعنا اسم المجلد السري في هذا السطر

(6)
ألغ ملف ال configration.php من مكانية القديمحيث كان مع بقية ملفات جملا.

زر الموقع وتأكد من أن كل شيء يسير على ما يرام.

وحماكم الله وإيانا من شر المخترقين.

User avatar
sherif
Joomla! Ace
Joomla! Ace
Posts: 1560
Joined: Fri Jan 12, 2007 12:15 am
Location: Dikirnis , Egypt :: دكرنس ، مصر
Contact:

Re: [شرح] كيف تحمي ملف الإعدادات configuration.php

Post by sherif » Sat Jun 05, 2010 5:21 pm

مشكورة جدا يا استاذة ، وبعد اذنك اضافة بسيطة
هذا التعديل يتم حذفه اذا قمنا بأي عملية ترقية ينتج عنها اضافة ملفات جديدة تحمل نفس الاسم ، وهذا متكرر في مستقبل المواقع ومن اجل الحماية ايضا
لذلك يجب ان نحتفظ بمذكرة بسيطة باسماء الملفات ومسارها وطبيعة التعديل بالتفصيل
بحيث نقوم باجرائه مرة ثانية اذا ما قامت الترقية بحذف التعديل الذي اجريناه
تحياتي

I-MAG
Joomla! Guru
Joomla! Guru
Posts: 960
Joined: Sat Oct 14, 2006 5:25 pm
Location: Kuwait

Re: [شرح] كيف تحمي ملف الإعدادات configuration.php

Post by I-MAG » Sun Jun 06, 2010 7:59 pm

شكرا جزيلا على الإفادة القيّمة أخي شريف.

بالمناسبة، جربت أن أعمل الخطوات ذاتها على نسخة من جُملا موجودة في مجلد، ولم أنجح.
يظهر لي رسالة مفادها أنه لا يوجد ملف إعدادات ولا مجلد تنصيب.

فهل هذه الطريقة لا تعمل إلا إذا كانت جُملا على المجلد public_html؟

تحياتي.

User avatar
sherif
Joomla! Ace
Joomla! Ace
Posts: 1560
Joined: Fri Jan 12, 2007 12:15 am
Location: Dikirnis , Egypt :: دكرنس ، مصر
Contact:

Re: [شرح] كيف تحمي ملف الإعدادات configuration.php

Post by sherif » Sun Jun 06, 2010 8:52 pm

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

Code: Select all

define( 'JPATH_CONFIGURATION', JPATH_ROOT.DS.'../'.DS.'secretconfig');
تتعدل الى

Code: Select all

define( 'JPATH_CONFIGURATION', JPATH_ROOT.DS.'../../'.DS.'secretconfig');
والحقيقة انني لم اجرب الطريقة كلها حتى الآن ، لذلك أتمنى أن تجربي وتكتبي النتائج هنا
تحياتي

I-MAG
Joomla! Guru
Joomla! Guru
Posts: 960
Joined: Sat Oct 14, 2006 5:25 pm
Location: Kuwait

Re: [شرح] كيف تحمي ملف الإعدادات configuration.php

Post by I-MAG » Sun Jun 06, 2010 9:24 pm

شكرا أخي شريف.
جربت للتو، وهذا ما ظهر لي:
Warning: file_exists() [function.file-exists]: open_basedir restriction in effect. File(/home/site/public_html/test/../..//secret/configuration.php) is not within the allowed path(s): (/home/site/public_html:/home/site/tempsecret:/home/site/logssecret:/home/site/public_html//../confsecret) in /home/site/public_html/test/includes/framework.php on line 27

No configuration file found and no installation code available. Exiting...

User avatar
sherif
Joomla! Ace
Joomla! Ace
Posts: 1560
Joined: Fri Jan 12, 2007 12:15 am
Location: Dikirnis , Egypt :: دكرنس ، مصر
Contact:

Re: [شرح] كيف تحمي ملف الإعدادات configuration.php

Post by sherif » Sun Jun 06, 2010 10:08 pm

اذا جربي الرابط المباشر

Code: Select all

define( 'JPATH_CONFIGURATION', '/home/site/secretconfig');

I-MAG
Joomla! Guru
Joomla! Guru
Posts: 960
Joined: Sat Oct 14, 2006 5:25 pm
Location: Kuwait

Re: [شرح] كيف تحمي ملف الإعدادات configuration.php

Post by I-MAG » Sun Jun 06, 2010 10:19 pm

لم ينفع أيضا.
Warning: file_exists() [function.file-exists]: open_basedir restriction in effect. File(/home/mysite/secret/configuration.php) is not within the allowed path(s): (/home/mysite/public_html:/home/mysite/tmp:/home/mysite/logs:/home/mysite/public_html//../secret) in /home/mysite/public_html/test/includes/framework.php on line 27
No configuration file found and no installation code available. Exiting...
هل للأمر علاقة ب open_basedir restriction in effect

شكرا جزيلا.

User avatar
sherif
Joomla! Ace
Joomla! Ace
Posts: 1560
Joined: Fri Jan 12, 2007 12:15 am
Location: Dikirnis , Egypt :: دكرنس ، مصر
Contact:

Re: [شرح] كيف تحمي ملف الإعدادات configuration.php

Post by sherif » Mon Jun 07, 2010 12:01 pm

open_basedir restriction in effect

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

I-MAG
Joomla! Guru
Joomla! Guru
Posts: 960
Joined: Sat Oct 14, 2006 5:25 pm
Location: Kuwait

Re: [شرح] كيف تحمي ملف الإعدادات configuration.php

Post by I-MAG » Mon Jun 07, 2010 5:03 pm

بناء على نصيحة RSfirewall! قمت بتعطيل خاصية
open_basedir
من خلال ملف php.ini مخصص في مجلد public_html

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

جربت توقيف تفعيلها اليوم من ملف ال php.ini
وصارت جميع الأمور تعمل، ولله الحمد.


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

لا أدري ما الحل. رسالت شركة الاستضافة، وبانتظار ردهم.
إذا كان هناك أية نصائح في هذا المجال، أرجو إخباري.

مع خالص الشكر.

User avatar
sen727
Joomla! Apprentice
Joomla! Apprentice
Posts: 29
Joined: Wed Oct 22, 2008 8:38 pm

Re: [شرح] كيف تحمي ملف الإعدادات configuration.php

Post by sen727 » Sun Sep 12, 2010 10:18 pm

السلام عليكم ورحمة الله وبركاته ،،، وكل عام وأنتم بخير

لقد أتبعت الخطووات على ( localhost ) واحدة تلو الأخرى ولم تعمل معي كانت تضهر لي رسالة خطأ تفيد بأنه لم يتم العثور على ملف configuration.
فأتبعت الطريقة المستخدمة في نفس الملف (defines.php) في باقي المجلدات (administrator / libraries/ ....) بهذا الشكل :

Code: Select all

define( 'JPATH_CONFIGURATION', 	JPATH_ROOT.DS.'conf' );

وقد نجحت وأصبح الموقع يعمل بشكل طبيعي ولكن عندي سؤال بخصوص صلاحية المجلد الذي انشئه ماهي الصلاحياة 444 أو ماذا لأن بالطبيعي عند إنشاء أي مجلد على Root يأخذ صلاحية 777 أو 744 .

وحاولت تغيير أسم مجلد administrator في الملفين
includes/defines.php
administrator/includes/defines.php
نجح معي الأمر بالشكل الضاهري ولكن القوائم لا تعمل ؟؟ ما هي الملفات الواجب التعديل فيها ليعمل بأسم مختلف .

ولكم مني فائق الاحترام والتقدير
وكل عام وأنتم بخير


User avatar
suneye
Joomla! Hero
Joomla! Hero
Posts: 2676
Joined: Sat Jan 12, 2008 6:00 pm
Location: Damascus - Syria

Re: [شرح] كيف تحمي ملف الإعدادات configuration.php

Post by suneye » Thu Sep 16, 2010 6:47 pm

شكراً لجميع المشاركين في هذا الموضوع الهام

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

علما أن جميع التجارب بنقل هذا الملف لم تنجح
على عكس تقل مجلدي التيمب واللوجز

يبقى هذا مجرد رأي، ومن لدية تجارب ناجحة تتعلق بالحماية نرجو أن يفيدنا بها

بالتوفيق
Mahmood Alhaj Kassem _ محمود الحاج قاسم
Arabic Joomla! Translation Coordinator and Arabic forum moderator.
http://joomlacode.org/gf/project/arabic_unitag/


Locked

Return to “الحماية - و تحسين السرعة والأداء”