it-swarm.com.ru

Должны ли папки плагинов включать пустой файл index.php?

Сам WordPress в папке wp-content содержит пустой файл PHP, который выглядит следующим образом.

<?php
// Silence is golden.
?>

Должны ли плагины включать в себя пустой файл, подобный этому, чтобы люди не могли просматривать содержимое каталога? А как насчет дополнительных папок в темах - например, каталога includes?

14
chrisguitarguy

Я собираюсь сказать ДА. Безопасность через неизвестность работает, если вы более неясны, чем ваши соседи :) (шучу, но в этом есть доля правды).

Реальность такова, что боты/сканеры теперь компилируют списки плагинов прямо с wordpress.org и сканируют URL-адрес плагина напрямую, считывая отпечатки пальцев для известных эксплойтов и сохраняя информацию в базе данных для справки.

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

пс. Кроме того, в прошлом году было зарегистрировано 186 эксплойтов из плагинов wordpress.org (* сообщается ...).

8
Wyck

Нет, они не должны. Если плагин имеет уязвимости только потому, что кто-то может увидеть его структуру каталогов, он поврежден. Эти ошибки должны быть исправлены.
Безопасность через неизвестность это ошибка для себя.

Владелец сайта может разрешить или запретить просмотр каталогов.

Вторая проблема - это производительность: WordPress сканирует все PHP файлы в корневом каталоге плагина , чтобы найти заголовки плагина. Это позволяет вам иметь несколько плагинов в одном каталоге, например, /wp-content/plugins/wpse-examples/.

Это также означает, что неиспользуемые PHP файлы в этом каталоге тратят впустую время и память, когда WordPress ищет плагины. Один файл не принесет большого вреда, но представьте, что это становится обычной практикой. Вы создаете реальную проблему в попытке исправить вымышленное.

17
fuxia

Поскольку ядро ​​WordPress делает это, для плагинов имеет смысл следовать их примеру. Хотя все это может быть защищено с помощью различных настроек на стороне сервера, не помешает иметь настройки по умолчанию (вероятно, почему это делает ядро ​​WordPress).

1
BFTrick

Как указала fuxia, существует недостаток производительности, связанный с наличием дополнительного файла .php, который WordPress сканирует на наличие плагинов. index.html, вероятно, будет лучшим вариантом. Конечно, лучшим вариантом было бы запретить просмотр каталогов через веб-сервер.

А также, безопасность через неизвестность не годится.

0
Alex H