Subject İnformation
Author iEvNr Replies 0
Share Views 36
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
حماية php.ini وشرح خصائص الخيارات
#1
السلام عليكم ورحمة الله ,
اسعد الله اوقاتكم بكل خير
هذا الموضوع من فترة كنت مشاركه باكثر من منتدى وحبيت انشره هنا لزيادة الفائدة !

-------------------
ادارة السيرفرات وحمايتها مهمة بلاشك لاي شخص يمتلك سيرفر منتدى او اي شيء كان
باذن الله
هذا شرح بسيط لحماية الـ php على السيرفر
وطبعا حماية php ليس كل شيء لاكن ترفع من مستوى امان السيرفر
نبدا على بركة الله.
الدخول للشل بالشكل الاعتيادي عن طريف استخدام برنامج putty مثلا :
بعدها الدخول للملف php.ini
من هذا المسار تطبقه بالشل
كود :
nano /usr/local/lib/php.ini

ابحث عن طرق Ctrl+W
عن :
كود :
safe_mode

راح تجد امامها Off
اجعلها
On
بهذا الشكل يعني
safe_mode = On
ملاحظ: هذا الخيار تفعله اذا كان اصدارك الــ PHP اقل من اصدار 5.3 , علما تم ازالته في الاصدار 5.4 واعلى
طيب شرح عن السيف مود
يحاول توجيه الوضع الآمن حل العديد من المشاكل التي تحدث في بيئة استضافة مشتركة عند استخدام PHP. يقارن UID (PHP) الخاص ببرنامج PHP النصي مع UIDs للملفات والدلائل التي يحاول الوصول إليها. إذا لم تتطابق معرفات UID ، فإن النظام لا يسمح للبرنامج النصي بالوصول إلى الملف أو الدليل المطلوب.
طيب انتهينا من السيف مود نوتجه للامور الاخرى عن طرق البحث عن :
كود :
register_globals

ستجدها
register_globals = On
اجعلها
register_globals = Off
ملاحظ: هذا الخيار تفعله اذا كان اصدارك الــ PHP اقل من اصدار 5.3 , علما تم ازالته في الاصدار 5.4 واعلى
طيب شرح عن register_globals
عند تمكين توجيه register_globals ، قد يكتسب المهاجمون القدرة على تجاوز متغيرات التكوين من خلال عنوان URL.
ننتقل للتعديل الاخر وهو تعطيل الدوال
طبعا تعطيل الدوال يختلف من سيرفر لاخر السبب لئنه لكل سيرفر عليه سكربتات اخرة مثلا ورد بريس والسيرفر الاخر فيبوليتن وهكذا راح يكون في اختلاف بتعطيل الدوال
لذلك راح اضع لكم دوال قليلة والاهم في حال حدثت مساكل بسبب الدالة يمكنك الرجوع للملف وحذفها
نبحث عن :
كود :
disable_functions

راح تجد اماهمها علامة = ثم فراغ ضع التالي بعد علامة الـ =
كود :
symlink,shell_exec,exec,proc_close,proc_open,popen,system,dl,passthru,escapeshellarg,escapeshellcmd,posix_getgid,posix_getgrgid,dl,exec,pclose,proc_nice,proc_terminate,proc_get_status,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,hypot,pg_host,pos,posix_access,posix_getcwd,posix_getservbyname,myshellexec,getpid,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mknod,posix_setgid,posix_setsid,posix_setuid,posix_times,posix_uname,ps_fill,posix_getpwuid,global,ini_restore,zip_open,zip_read,rar_open,bzopen,bzread,bzwrite,apache_get_modules,apache_get_version,phpversionphpinfo,php_ini_scanned_files,get_current_user,error_log,disk_total_space,diskfreespace,leak,imap_list,hypo,filedump,gethostbyname,safe_mode,ob_clean,getmygid,php_uname,apache_getenv,apache_setenv,bzread,bzwrite,posix_access,bzopen,phpini,highlight_file,show_source,sscanf,dos_conv,get_current_user,get_cwd,error_log,dir,cmd,e_name,vdir,get_dir,only_read,copy,ini_set,getmicrotime,float,shver,c99sh_surl,timelimit,surl_autofill_include,base64_decode,gzinflate,encode64,ln


طيب شرح عن فوائد تعطيل الدوال
تعطيل لوظائف PHP  التي تسمح للنظام بتنفيذ العمليات الفرعية , لأن العمليات الفرعية تعمل خارج قيود أمان PHP أخرى
الان نبحث عن :
كود :
display_errors

راح تجدها بهذا الشكل
display_errors = On
غيرها الى Off
بتصير يعني بهذا الشكل
display_errors = Off
اهمية تعطيلها
ماراح يقدر يطبع لك الاخطاء في صفحات HTML يعني مثلا رفعت سكربت والسكربت كان في خطا راح يظهر لك صفحة بيضاء لما تدخل على المسار من المتصفح
اما كيف تعرف تحل الخطا بوم تعطلها ؟
لاتخاف السيرفر راح يحفظ لك الاخطاء في سجلات الاخطاء.
الان نبحث ايضا عن :
كود :
allow_url_fopen

ستجدها هكذا :
allow_url_fopen = On
اجعلها
allow_url_fopen = Off
اهمية التعطيل ؟
تعطيل هذا التوجيه لرفض المهاجمين القدرة على فتح الملفات عن بعد من الخادم الخاص بك من خلال نقاط الضعف إدراج الملف.
ابحث عن :
كود :
allow_url_include

ستجدها ايضا على هذا الشكل
allow_url_include = On
اجعلها
allow_url_include = Off
اهمية التعطيل ؟
نفس ما ذكر بالاعلى لمنع فتح الملفات عن بعد
نبحث عن :
كود :
file_uploads

راح تحصلها كذا
file_uploads = On
اجعلها
file_uploads = Off
ملاجظ: لو لديك مثلا سكربت رفع او حتى منتدى او اي شي يتم الرفع من خلاله ملفات او صور راح يظهر رسالة بقلك الخادم غير قادر على رفع الملف
لذلك هذه الخيار تغلقه على حسب استخدامك للسيرفر
ابحث عن :
كود :
open_basedir

اجعل القيمة امامها
~/public_html
يعني على هذا الشكل
كود :
open_basedir = ~/public_html

يؤثر هذا الإعداد فقط على الخوادم التي تستخدم وحدة mod_php Apache.
اهمية هذا الخيار
يسمح لك هذا التوجيه بتحديد عمليات الملف إلى دليل معين. كثيرًا ما يحاول المهاجمون العثور على طرق لتضمين الملفات المحلية في النصوص البرمجية PHP للحصول على معلومات حول نظام ملفات الخادم.
إذا كان نظامك يعمل على EasyApache 4 ، قم بتغيير هذا التوجيه في WHM >> Home >> Software >> MultiPHP INI Editor
الان ماباقي لنا الا القليل
ابحث عن :
كود :
session.cookie_httponly

اجعل القيمة لها 1
الفائدة؟
لرفض جافا سكريبت إمكانية الوصول إلى ملفات تعريف ارتباط جلسة PHP. يضمن ذلك عدم تمكن المهاجمين من سرقة ملفات تعريف ارتباط الجلسة
هام !
إذا كان المستخدمون يستخدمون ملفات تعريف ارتباط جلسة PHP من خلال JavaScript ، فقد يمنع النظام استخدامك لهذا التوجيه
واخر شي لتعديله في هذا الملف هو " :
كود :
session.referer_check

نجعل قيمتها On
الفايدة من تفعليه :
يمنع اي مخترق من اتباع الارتباطات وسرقة محتوى الجلسة يعني باختصار انتا سمحت للـ PHP للتحق من HTTP
وبالنهاية هذا ما املكه لطرحه
اسال الله ان يكون به خير للجميع وان يكون طرحي واضح وسهل على الجميع وخالي من الاخطاء.

في امان الله وحفظه
الرد



يقوم بقرائة الموضوع:
بالاضافة الى ( 1 ) ضيف كريم