Чи повинні папки плагінів містити порожній файл index.php?


16

Сам WordPress у wp-contentпапці містить порожній файл PHP, який виглядає приблизно так.

<?php
// Silence is golden.
?>

Чи повинні додатки включати такий порожній файл, щоб зупинити перегляд людей вмістом каталогу? А як щодо додаткових папок у темах - наприклад, у includesкаталозі?


1
так, це, мабуть, гарна ідея. Ніколи не розумів, чому WP не має Options –Indexesв комплекті htaccess, тому ці файли не
знадобляться

Відповіді:


17

Ні, вони не повинні. Якщо плагін має вразливості лише тому, що хтось може побачити його структуру каталогу, він порушений. Ці помилки слід виправити.
Безпека через незрозумілість - сама помилка.

Власник сайту повинен дозволити чи заборонити перегляд каталогів.

Друга проблема - це продуктивність: WordPress сканує всі PHP-файли в кореневому каталозі плагіна, щоб знайти заголовки плагінів. Це дозволяє мати кілька плагінів в одному каталозі, наприклад /wp-content/plugins/wpse-examples/.

Це також означає, що невикористані файли PHP у цьому каталозі витрачають час і пам'ять, коли WordPress шукає плагіни. Один файл не принесе великої шкоди, але уявіть, що це стає загальною практикою. Ви створюєте справжню проблему, намагаючись виправити вигадане.


2
"Власник сайту повинен дозволити чи заборонити перегляд каталогів." Мабуть, це ключовий момент.
chrisguitarguy

і моє головне питання: чому не записані основні файли плагінів index.php? це може бути оптимальним рішенням
Т.Тодуа

10

Я збираюся сказати ТАК. Безпека через незрозумілість працює, якщо ти більш незрозумілий, ніж твої сусіди :) (жартуємо, але в цьому є правда).

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

Отже, який би ви хотіли мати, бот не мав змоги зібрати інформацію під час встановлення або залишив її автору плагіна, щоб переконатися, що ви захищені. Як щодо обох.

пс. У минулому році було зареєстровано 186 подвигів із плагінів wordpress.org. (* Повідомлено ..).


1
Експлуатовані сканери не перевіряють, чи існує плагін. Вони намагаються запустити експлуатацію під час першого запиту. Порожній index.phpнічого не захистить, ви просто отримаєте помилкове відчуття безпеки.
фуксія

Але, наприклад, вони сканують відбитки пальців (один з багатьох) відбитків пальців, наприклад, понад 2200 плагінів, і використовують пристойні відбитки пальців для виявлення версій (розмір файлу, доповнення файлів тощо).
Вік

Я прибрав десятки зламаних сайтів WordPress. Майже завжди перший запит був справжньою атакою. Це просто розумно: навіщо витрачати час на детальне сканування, якщо ви можете перевірити вразливість у першому запиті? Відстежте свої 404, щоб побачити це. :)
fuxia

1
Я погоджуюсь, це має залежати від кінцевого користувача, а не від автора. Але я не думаю, що це також болить. Я просто хотів додати зустрічну точку, оскільки ви сказали «ні».
Вік

1
позначив цей як прийнятий через дискусію щодо коментарів!
chrisguitarguy

1

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


0

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

А також безпека через незрозумілість не є корисною.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.