Онлайн заработок, создание и монетизация сайтов, веб-разработка, SEO и SMO продвижение, фриланс, партнерки, полезные сервисы вебмастерам, блоггинг.

Главная » Web разработка » Как закрыть просмотр списка файлов FTP директорий в браузере?

Закрываем листинг файлов FTP директорий сайта в браузере

Недавно столкнулся с вопросом отображения списка (листинга) файлов блога на FTP через браузер. Вопрос немного неоднозначный, поэтому решил собрать по нему разную информацию и заодно опубликовать пост. В частности расскажу о том, как можно закрыть просмотр списка файлов через htaccess. Для примера взят WordPress блог, хотя все это справедливо для любой другой CMS и обычных сайтов.

Итак, допустим у вас установлен плагин Simple Tags, и, если вы вдруг решите зайти по ссылке http://ваш_сайт/wp-content/plugins/simple-tags то, скорее всего, увидите там следующую картинку:

Список файлов на ФТП

В браузере отобразится листинг с FTP, где показаны все файлы, что находятся в конкретном каталоге. Такая фишка будет срабатывать и для некоторых других созданных вами папок на хостинге. Если же зайти в какую-то базовую директорию WordPress, например, http://ваш_сайт/wp-content/plugins/ или http://ваш_сайт/wp-content/ то увидите там пустой экран. Все дело в том, что в этих каталогах имеется файл index.php. Для WP он содержит следующий код:

<?php
// Silence is golden.
?>

Логика работы веб-сервера следующая. Он заходит в конкретную директорию и ищет там (по умолчанию) index.html или index.php. Если их не находит, то отображает список всех файлов в каталоге.

Что в этом плохого? Во-первых, это определенная лазейка с точки зрения безопасности. Злоумышленник может получить информацию о наличии проблемных модулей на вашем сайте (будь то WordPress  или другая CMS). К сожалению, далеко не все плагины идеально защищены, и просматривая список файлов на FTP можно определить используете ли вы какой-то дырявый модуль или нет. Во-вторых, через листинг можно легко получить доступ, например, ко всем картинам сайта и скачать их. Это может быть нехорошо, если вы решили внедрить водяные знаки на фото или же просто против загрузки своих изображений.

Закрываем листинг файлов на FTP

Собственно, есть 2 варианта дабы скрыть отображение файлов. Теоретически вы можете расположить в новых созданных каталогах базовый index.php. В случае когда на вашем сайте таких директорий несколько, особых проблем задача не вызовет.

Однако есть и более универсальный метод — с помощью htaccess. Скачиваете с FTP файл htaccess из корневой директории сайта (для вордпресс — это там где и wp-config.php). Открываете его и в самом конце дописываете строку:

Options -Indexes

Далее сохраняете и загружаете обратно на FTP, перезаписав оригинальный файл. Для редактирования лучше использовать редакторы Notepad++ или Sublime Text 2 дабы не было каких-то проблем с кодировками. Теперь при переходе по каталогам на FTP пользователь увидит следующее сообщение:

Закрываем показ списка файлов на FTP

Проблемы при закрытии FTP листинга?

Как видите, задача скрытия списка файлов решается достаточно просто. Однако есть тут свои нюансы. После изменений в htaccess файле страница каталога отдает код статуса 403 Forbidden. Это свидетельствует о том, что данная страница/раздел закрыты от пользователей. Если проверить адрес через Яндекс.Вебмастер, то увидите соответствующий HTTP статус.

Индексация при закрытии FTP листинга

При этом использование «пустого» index.php отдает код HTTP 200. Интересно влияет ли это как-то на индексацию? Мне кажется, что нет. И вот почему:

  • Во-первых, во всех описаниях директивы Options -Indexes указана информация о том, данная настройка управляет исключительно отображением листинга.
  • Во-вторых, для парочки CMS встречал использование Options -Indexes в описании «идеального» файла настроек htaccess. Плюс некоторые хостинги включают данную директиву по умолчанию.
  • Во-третьих, запрет индексации для большинства категорий в wp-content/plugins и wp-content/themes и так уже прописан в robots.txt. Остаются разве что картинки.
  • В-четвертых, как показывает тот же Яндекс.Вебмастер, 403 статус не распространяется на содержимое конкретной директории.

Индексация при закрытии FTP листинга

Однако, если вы все равно переживаете за индексацию какого-то определенного каталога, можете воспользоваться специальной командой htaccess. Для этого в нужной директории создаете файл «.htaccess» (да, с точкой вначале), после чего добавляете в него строку:

Options +Indexes

Сохраняете и загружаете в ту папку, в которой хотите выводить список файлов по FTP. Внимание! Данная запись будет распространяется не только на текущий каталог, но и на все его поддиректории (при включенной по умолчанию AllowOverride All).

В общем, мне кажется, что htaccess директива Options -Indexes не сможет негативно повлиять на индексацию вашего сайта. С другой стороны она закроет от злоумышленников просмотр списка файлов на FTP.

Что скажете по этому поводу? Уже настроили у себя такую фишку? Или используете пустой index.php?

17.10.16

Категории: Web разработка, WordPress.

Теги: , , , , , , ,

8 Comments
  1. VPSadm

    Так обычно же FTP требует авторизации, какие листинги. Да и вообще FTP не нужен :)

  2. Tod

    VPSadm, про авторизацию не совсем понял) Вообще все зависит от настроек хостинга/сервера, у меня просто на нескольких проектах были листинги. А вообще, как я понял, хостера автоматически убрают эти фишку. Правда, судя по заметкам в интернете, не у меня одного подобные списки выводятся.
    У тебя, я смотрю, ошибка 404 срабатывает на этих страницах.

  3. Seoonly

    спасибо. для безопасности лишним не будет.

  4. VPSadm

    А, меня тайтл сбил с толку. У тебя тут тогда FTP вообще не при делах. Эта опция обычно по умолчанию выключена — индекс для директорий. Папки по-умолчанию отдают код 403. http://vpsadm.ru/screens/ вот, например. Что касается htaccess, так у меня вообще его нет, ибо без апача работает сервер.

    Код 404 отдается при попытке запроса несуществующих страниц, это тоже нормальное поведение.

  5. Tod

    VPSadm, в твоем случае меня просто смутило, что vpsadm.ru/blog/wp-content/uploads/ отдает 404 вместо 403) Но видимо там приставка blog как-то по хитрому добавлена в УРЛ, думал WP в подкаталоге находится.
    А по поводу опции «Options -Indexes» — я ее только на одном хостинге видел по умолчанию, все остальные у меня отдавали список файлов на ФТП если заходить через браузер в wp-content/uploads/ и т.п. Поэтому добавил и заодно пост написал.

  6. Елена

    Можете помочь со скриптом?

  7. Tod

    Елена, каким скриптом? В статье, вроде бы ничего такого нет)

  8. Ольга

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

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

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