Запретить исполнение php файлов с помощью .htaccess

Если у вас на сайте есть папка, в которой вы предоставили возможность пользователям загружать файлы, то они могут создать серьезные проблемы с безопастностью сайта, вплоть до полного его взлома и удаления.

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

Для этого в корень папки, где будут храниться файлы поставьте файл .htaccess. И тут его содержимое может сильно различаться в зависимости от того, что вы хотите.

1. Поставьте код, для запрета php файлов. лично у меня он не сработал, поэтому использовал другие методы. К тому же он защищает только от php атак, но js файлы запросто будут запускаться. Чтобы проверить сработал ли код, загрузите php файл и попробуйте его запустить - если не получится запуск, значит скрипт работает.

<Filesmatch>
Order allow,deny
Deny from all
</FilesMatch>

2. Заставить воспринимать php и другие файлы как текстовые. Этот метод у меня сработал и при открытии любого файла из перечисленных расширений, он открывается, как обычный txt-ый файл в браузере.

RemoveHandler .php .cgi .pl .fcgi .fpl .phtml .phtm .shtml .php2 .php3 .php4 .php5 .asp .jsp .js
AddType "text/plain" .php .cgi .pl .fcgi .fpl .phtml .phtm .shtml .php2 .php3 .php4 .php5 .asp .jsp .js

Также рекомендую вам закрывать на просмотр папки от просмотра. Например, если в вашем сайте есть папка files, и в ней картинки, то при открытии ссылки в браузере будет полный список всех файлов в этой папке (вашсайт.ру/files/). Чтобы этого не было либо создайте пустой index.html и поместите его в корень этой папки (так обычно делает Joomla движок), либо добавьте в .htaccess команду: Options -Indexes. Она запрещает пользователям смотреть каталог и все подкаталоги.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


Введите капчу: