Наибольшую угрозу для сайта представляют залитые злоумышленником на сервер PHP шеллы - скрипты которые могут выполняться на вашем сервере, соответственно производить какие-либо изменения в файлах доступных для записи или могут, например читать содержимое конфигурационных данных и соответственно получать прямой доступ к базе данных.

Главная особенность заключается в том, что шеллы можно залить не в любые папки на сервере, а лишь в папки доступные для записи на сервере.

В папках, в которых не нужно выполнение php кода, например в таких как /images/ /uploads/ /templates/ и т.п., то лучше всего запретить в них выполнения PHP файла.

На серверах которые работают в режимах CGI, FastCGI, suPHP, DSO (Apache)

создать файл .htaccess в папке в которой вы хотите запретить выполнение php кода, если этот файл уже есть то в начале добавить следующий код:

<FilesMatch "\.([Pp][Hh][Pp]|[Cc][Gg][Ii]|[Pp][Ll]|[Ph][Hh][Tt][Mm][Ll])\.?.*">  
Order allow,deny  
Deny from all  
</FilesMatch>  

Данный код запрещает прямое обращение к PHP файлам, находящимся в этих папках.

На серверах которые работают в режиме mod_PHP (DSO - Apache PHP), там где не запрещены директивы php_flag, php_value ...

создать файл .htaccess в папке в которой вы хотите запретить выполнение php кода, если этот файл уже есть то в начале добавить следующий код:

php_flag engine off  

Данная строчка отключает использование PHP интерпретатора при попытке обращения к PHP файлам находящимся в этих папках, а также находящимся во всех вложенных папках. Поэтому даже в случае заливки в эти папки файлов со зловредным PHP кодом, они становятся для злоумышленника совершенно бесполезными, т.к. попросту не будут запускаться и выполнятся сервером.

Обновлено 13 марта 2019 г.