Защита сайта от взлома.

В этой статье я расскажу о некоторых настройках PHP и Apache помогут защитить сайт от вирусов и взлома.


1) register_globals = off
Определяет, нужно ли регистрировать содержимое переменных EGPCS (Environment, GET, POST, Cookie, Server) в качестве глобальных переменных. Если включить эту опцию, register_globals будет вставлять в ваши скрипты все виды переменных, включая переменные запросов из HTML-форм. Это создаст серьезную угрозу безопасности, поэтому мы рекомендуем включать эту опцию только в случае крайней необходимости.
2) open_basedir
Список папок, служащий для ограничения набора файлов, которые могут быть открыты PHP. Файлы, расположенные вне указанных папок, скриптами PHP открываться не будут. В качестве разделителя используйте двоеточие (:) в Linux и точку с запятой (;) в Windows. Пример для Linux: /dir/upload:/usr/tmp Рекомендуем использовать для каждаго виртуального сайта. Это позволит избежать влома всех сайтов на сервере, вслучае взлома хакерами одного сайта. Посути они будут заперты внутри определенной вами директории.
3) Необходимо определить список запрещенных для использования функций php. Эти функции в 99% случаев не используются сайтами, а хареры их любят использовать для взлома сайтов.

disable_functions = eval, get_current_user, apache_get_modules, virtual, getmyinode, fileowner, filegroup, apache_get_version, apache_getenv, ini_restore, openlog, syslog, highlight_file, show_source, symlink, disk_total_space, ini_get_all, phpinfo, pcntl_alarm, disk_free_space, pcntl_fork, pcntl_waitpid, pcntl_wait, pcntl_wifexited, pcntl_wifstopped, pcntl_wifsignaled, pcntl_wexitstatus, pcntl_wtermsig, pcntl_wstopsig, pcntl_signal, pcntl_signal_dispatch, pcntl_get_last_error, pcntl_strerror, pcntl_sigprocmask, pcntl_sigwaitinfo, pcntl_sigtimedwait, pcntl_exec, pcntl_getpriority, pcntl_setpriority, exec, shell_exec, system, passthru, popen, proc_open, proc_close, proc_get_status, proc_nice, proc_terminate, leak, listen, chgrp, apache_note, apache_setenv, closelog, debugger_off, debugger_on, define_sys, php_uname, getmyuid, getmypid, diskfreespace, dl, posix_ctermid, 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_isatty, posix_kill, posix_mkfifo, posix_setegid, posix_seteuid, posix_setgid, posix_setpgid, posix_setsid, posix_setuid, posix_times, posix_ttyname, posix_uname

4) allow_url_fopen = off
Позволяет функциям файла PHP получать данные из удаленных источников по FTP или HTTP. Эта опция представляет серьезную угрозу безопасности, поэтому не рекомендуется включать ее без реальной необходимости.
5) mod_security для Apache
По своей сути, mod_security — это программный фаервол с открытым кодом, защищающий вебсервер от ddos. О настроке которого я рааскажу отдельно.
6) Защита директории с картинками с помощью .htaccess
Как правило все php-shell и backdoor появляются в директории images (WordPress или Joomla), поэтому рекомендую ее дополнительно защитить с помощью файла .htaccess. Для этого достаточно его поместитить во все папки images вашего сайта со следующим содержанием:

ptions -Indexes
php_flag engine 0
RemoveHandler .phtml .php .php3 .php4 .php5 .php6 .phps .cgi .exe .pl .asp .aspx .shtml .shtm .fcgi .fpl .jsp .htm .html .wml
AddType application/x-httpd-php-source .phtml .php .php3 .php4 .php5 .php6 .phps .cgi .exe .pl .asp .aspx .shtml .shtm .fcgi .fpl .jsp .htm .html .wml
Прочитано 2213 раз Последнее изменение Четверг, 02 Июль 2015 20:27
Другие материалы в этой категории: « Скрипты для бэкапа. Пример взлома сайта. »

Оставить комментарий

Убедитесь, что вы вводите (*) необходимую информацию, где нужно
HTML-коды запрещены

JoomShaper