حماية ملف php.ini وشرح خصائصه
الامان هو عامل مهم جدا في اي تطبيق ويب ولا يجب الاغفال عنه, وهذا ما يفعله للاسف بعض المطورين الجدد, سواء
بسبب حسن النية او نسيانهم.
هذا شرح بسيط لحماية الـ php على السيرفر.
اولا: نقوم بالاتصال بالسرفر عن طريق ssh وقد تم شرح كيف يتم ذلك في مواضيع سابقة راجع المقال التالي :
شرح الاتصال عن بعد بالسرفر عن طريق ssh
ثانيا: نقوم بفتح ملف php.ini باي محرر نصوص تفضله وسوف يتم استخدام nano لسهوله استخدامه
مسار الملف هوه
nano /usr/local/lib/php.ini
1- تعطيل safe_mode #
للبحث داخل الملف نستخدم Ctrl+W للبحث عن safe_mode
راح تجد امامها Off اجعلها On بهذا الشكل يعني
safe_mode = On
ملاحظة: هذا الخيار تفعله اذا كان اصدارك الــ PHP اقل من اصدار 5.3 , علما تم ازالته في الاصدار الجديده
شرح عن safe_mode
يحاول توجيه الوضع الآمن حل العديد من المشاكل التي تحدث في بيئة استضافة مشتركة عند استخدام PHP.
يقارن UID (PHP) الخاص ببرنامج PHP النصي مع UIDs للملفات والدلائل التي يحاول الوصول إليها.
إذا لم تتطابق معرفات UID ، فإن النظام لا يسمح للبرنامج النصي بالوصول إلى الملف أو الدليل المطلوب.
2- إخفاء معلومات PHP #
نقوم بالبحث عن expose_php وتعطيله
expose_php = Off
3- تعطيل استدعاء ملفات خارج السيرفر وتنفيذها بسيرفر #
نقوم بالبحث عن allow_url_fopen , allow_url_include وتعطيله
allow_url_fopen = Off
allow_url_include = Off
ملاحظه: لو لديك سكربت رفع او حتى منتدى او اي شي يتم الرفع من خلاله ملفات او صور راح يظهر رسالة الخادم غير قادر على رفع الملف
لذلك نقوم باغلاق هذا الخيار على حسب استخدامك للسيرفر
4- تعطيل الدوال #
تعطيل الدوال يختلف من سيرفر لاخر السبب لان لكل سيرفر يختلف في الاستخدام عن اسكربت اخر لذلك يكون في اختلاف بتعطيل الدوال
لذلك راح نضع لكم دوال قليلة والاهم في حال حدثت مشاكل بسبب الدالة يمكنك الرجوع للملف وحذفها.
نبحث عن : 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 التي تسمح للنظام بتنفيذ العمليات الفرعية.
5- خاصية register_globals #
نقوم بالبحث عن register_globals وتعطيله
register_globals = Off
6- خاصية magic_quotes_gpc #
نقوم بالبحث عن magic_quotes_gpc وتعطيله
magic_quotes_gpc = off
تم الانتهاء من شرح حماية ملف php.ini وشرح خصائصه
شروحات ذات صله #
زيادة حد ذاكرة PHP في ووردبريس
تحسين خادم الويب اباتشي علي WHM؟
طريقة تعطيل جميع اضافات الووردبريس