غیرفعال کردن توابع خطرناک PHP
برای اینکه بتونیم امنیت سرورمون رو تا حد بسیاری بالا ببریم در این تاپیک قصد دارم یک سری از فانکشن های که بهتره برای سرور های اشتراکی بسته باشه و به عنوان فانکشن های خطرناک از اونها یاد میشه شرح بدم .
در پایین لیست کامل این فانکشن ها رو عرض میکنم:
محل قرارگیری این فانکشن ها در فایل php.ini هست. اگر آدرس دقیق اونو نمیدنید دستور زیر رو در خط فرمان تایپ کنید:
php -i | grep php.ini
بیشتر اوقات آدرس فایل در سرور های لینوکس etc/php.ini قرار دارد.
خب حالا با استفاده از دستور زیر این فایل رو ویرایش میکنیم:
nano /etc/php.ini
به دنبال disable_functions = بگردید برای اینکار میتونید در ویرایشگر Ctrl +W رو بزنید و عبارتی disable_functions رو وارد کنید تا ویرایشگر شما رو به همین خط کد هدایت کند.
حالا فانکش های این خط رو به صورت زیر جایگزین کنید:
disable_functions = shell, symlink, ini_restore, mysql_list_dbs, popen, stream_select, socket_select, socket_create, socket_create_listen, socket_create_pair, socket_listen, socket_accept, socket_bind, socket_strerror, socket_clear_error, socket_close, socket_connect, socket_get_option, socket_getpeername, socket_getsockname, socket_last_error, socket_read, socket_recv, socket_recvfrom, socket_send, socket_sendto, socket_set_block, socket_set_nonblock, socket_set_option, socket_shutdown, socket_write, readlink, symlink, link, pfsockopen, ini_alter, dl, openlog, syslog, pcntl_exec, pcntl_fork, pcntl_signal, pcntl_waitpid, pcntl_wexitstatus, pcntl_wifexited, pcntl_wifsignaled, pcntl_wifstopped, pcntl_wstopsig, pcntl_wtermsig, fpassthru, system, passthru, exec, proc_close, proc_get_status, proc_nice, proc_terminate, shell_exec, posix_access, posix_ctermid, posix_errno, posix_get_last_error, posix_getcwd, posix_getegid, posix_geteuid, posix_getgid, posix_getgrgid, posix_getgrnam, posix_getgroups, posix_getlogin, posix_getpgid, posix_getpgrp, posix_getpid, posix_getppid, posix_getpwnam, posix_getpwuid, posix_getrlimit, posix_getsid, posix_getuid, posix_initgroups, posix_isatty, posix_kill, posix_mkfifo, posix_mknod, posix_setegid, posix_seteuid, posix_setgid, posix_setpgid, posix_setsid, posix_setuid, posix_strerror, posix_times, posix_ttyname, posix_uname, ini_get_all, php_uname, diskfreespace, disk_free_space, disk_total_space, sys_getloadavg, curl_multi_add_handle, curl_multi_close, curl_multi_exec, curl_multi_getcontent, curl_multi_info_read, curl_multi_init, curl_multi_remove_handle, curl_multi_select,mail
و از فایل با کلید ترکیبی Ctrl + X خارج و فایل رو ذخیره کنید.
بعد از ذخیره وب سرور آپاچی را رستارت کنید.