Перед заливкой картинок и других файлов на сервер, пора принять минимальные меры по соблюдению безопасности — запретить серверу показывать список файлов, расположенных в той или иной папке.
Делается это элементарно. Создаем в корневой папке сайта файл .htaccess
и записываем туда строчку Options All -Indexes
. Плюс всем запретим просматривать сам файл .htaccess
. Добавим туда строчки:
<Files .htaccess> order allow,deny deny from all </Files>
N.B. У меня в настройках сервера по-умолчанию уже была включена эта опция. Возможно, у вас также. Зато я планирую положить в папку проекта файл комментариев readme.txt. Его-то я и закрою.
<Files ~ "(.htaccess|readme.txt)"> order allow,deny deny from all </Files>
Тут может оказаться, что, несмотря на запрет, файл этот прекрасно виден любому, кто догадается набрать его правильный адрес. Скорее всего у вас работают два сервера — одни отдает посетителю статические файлы .txt, .html, .jpg, .gif
и т.д., обычно за это отвечает быстрый NGINX, а Apache — за всё остальное. Так как NGINX управляется своими конфигурационными файлами, поэтому он инструкции запрета Apache игнорирует. Решение простое — переименовать файл в .readme
и поправить .htaccess:
<Files ~ "(.htaccess|.readme)"> order allow,deny deny from all </Files>
Попробуйте откройте теперь файл из введя http://anydomain.ru/.readme — он не откроется. Мы получим ошибку 403 — доступ к запрашиваемой странице запрещен. Так, убрав расширения .txt, мы вывели файл из под контроля NGINX, оставив его введении Apache.