عرض مشاركة مفردة
 
  #3  
قديم 15-08-2006, 09:29 PM
Security Security غير متصل
عضو
 
تاريخ التسجيل: Aug 2006
مشاركة: 8
مستوى تقييم العضوية: 0
Security is on a distinguished road
الافتراضي

بعد ان اخذنا جوله جيده على اساسيات وميكانيكيات الحماية بالـphp سنتجه الى الجانب التطبيقي وكيف يمكننا اعداد الphp لكي تعمل بأمان على سيرفراتنا بدون ادنى جهد.
واريد ان اذكر هنا انه يجب الحذر الشديد عند التعامل مع ملفات الاعداد مثل php.ini و httpd.conf اوا اي ملف مرتبط بها حيث انها حساسه جدا واي خطأ بأدخال البيانات سوف يسبب خطأ عند اعاده تشغيل الapache لذلك يجب الانتباه .

سينقسم الشرح الى جانبين
الاول تركيب الحماية والثاني سوف يكون عن تهيئه بيئه الphp للعملاء على السيرفر فيما يتناسب مع احتياجات برامجهم ,,, فيوجد بعض البرامج اللتي تطلب تفعيل الـregister_globals او الـsafe_mode على سبيل المثال وبالتأكيد لن نريد خساره العميل لعدم توافق بيئه السيرفر مع سكربتات موقعه ومن جانب اخر لا نريد فقدان الحماية على السيرفر اي يجب ان نبقي عى شعرة معاوية بيننا وبين العميل .


اولا تركيب الحماية :
___تنبيه____تنبيه___تنبيه___
تأكد من عمل نسخه احتياطية لملف php.ini قبل الشروع بالتعديل عليه
___تنبيه____تنبيه___تنبيه___

يلزم لكل ما سبق انا نقوم بتحرير ملف php.ini على حسب احتياجاتك الخاصه (سأقوم هنا بوضع اعدادات سيرفري) وسوف تجده بالمسار التالي
كود:
/usr/local/lib
او بالمسار التالي اذا كنت تملك الـZend_optemizer على سيرفرك
كود:
/usr/local/Zend/etc/
قم بتطبيق الامر التالي
nano php.ini او pico php.ini على حسب المحرر الموجود على سيرفرك
الان سنعدل على الخيارات خطوه وخطوه وافضل عمل رستارت للـapache بعد كل تعديل لكي نتمكن من تعديل الخطأ بسرعة في حاله حدوثه

1-الان قم بالبحث عن safe_mode بواسطة ctrl+w او بالبحث يدويا عنه
وقم بالتعديل عليه لكي يصبح
كود:
safe_mode = On
2- ابحث عن safe_mode_gid وتأكد من ان قيمته كالاتي
كود:
safe_mode_gid = Off
3- ابحث عن disable_functions
وهنا سوف نقوم بتعطيل الدوال الخطره + تعطيل الدوال تخطي الـsafe_mode حيث للأسف لم يقم فريق الـphp بفعل اي شيء حيال الثغرات المكتشفه على حسب علمي
عموما من الافضل ان تعطل الدوال التالية
دوال ثغره تخطي السيف مود :
كود:
copy,error_log,tempnam,curl_init
دوال php الخطيره:

كود:
system,passthru,exec,popen,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,highlight_file,escape
shellcmd,pclose,pfsockopen,chgrp,chmod,debugger_off,debugger_on,leak,listen,define_syslog_variables,ftp_exec,posix_uname,posix_getpwuid,get_current_user,getmyuid,getmygid,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,pfsockopen,chgrp,chmod,debugger_off,debugger_on,leak,listen,define_syslog_variables,ftp_exec,posix_uname,posix_getpwuid,get_current_user,getmyuid,getmygid,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,escapeshellarg,getservbyport,getservbyname,myshellexec,escapeshellarg
وتأكد من كتابتها على سطر واحد عند تحريرها داخل ملف php.ini والا ستسبب مشكله عند التشغيل (اكرر على سطر واحد)

4- قم بالبحث عن register_globals وتأكد من ان قيمتها كالاتي
كود:
register_globals = Off
5- قم بالبحث عن allow_url_fopen وتأكد من ان قيمتها كالاتي
كود:
allow_url_fopen = Off
6-قم بالبحث عن expose_php وتأكد ان قيمتها كالاتي
كود:
expose_php = off
والان قم بعمل اعادة تشغيل للـapache سواء عن طريق لوحة تحكم السيرفر او عن طريق الامر التالي
كود:
httpd restart
وسوف يكون المخرج كالتالي
كود:
/usr/sbin/httpd restart: httpd restarted
وفي حالة ظهور اي خطأ سوف تكون المشكله بسبب التعديل بطريقه خاطئه فقم بمراجعة تعديلاتك






التوقيع
معنى جديد للأستضافة
تواصل معنا
الرد باقتباس