Первоначальный ситуация
Для сайта, который я настраиваю, я искал целую область защиты загрузок / загрузок и ограничения доступа к ним на основе пользовательских ролей / возможностей. Конечно, я прочитал некоторые из предыдущих вопросов, связанных с (общей) темой здесь, для справочных целей наиболее важные / интересные, которые я нашел:
- Как защитить загрузки, если пользователь не вошел в систему?
- Как ограничить доступ к загруженным файлам?
- Ограничение доступа к файлам в определенной папке
- Как сделать медиафайл приватным?
- Слияние скрипта загрузки PHP в `functions.php`
Дополнительные примечания
Как правило, неплохо бы повысить безопасность вашей установки WordPress - например, защитить свою wp-config.php
- есть много вещей, которые вы можете и должны сделать. Существует масса информации, как это сделать. Я нахожусь в контексте этого вопроса в основном о моих загрузках / загрузках.
Загрузка WordPress не защищена, каждый может просматривать uploads
папку, если вы не помешаете этому с помощью .htaccess
:
Options All -Indexes
.htaccess
Файл должен быть помещен в uploads
папку. Но это на самом деле не обеспечивает их безопасность, а только усложняет поиск файлов. Кроме того, вы можете предотвратить hotlinking
, существенно ограничив доступ на основе referrer
- хотя это немного другой случай, я подумал, что упомяну это, я не буду более подробно останавливаться, вы можете найти много информации об этом.
Конечно, есть возможность сделать посты приватными или создать собственный тип поста с подходящими файлами шаблонов, чтобы сделать этот тип поста приватным, но это не защищает ваши файлы. То же самое можно сказать и об обёртывании файлов в условных выражениях типа is_user_logged_in()
или is_admin()
.
На сайте sidenote есть множество плагинов, которые обещают сделать ваши файлы безопасными и защищенными, но многие из них просто притворяются, что некоторые из них приведены выше. Я просто излагаю это, потому что я уверен, что это известно не каждому бобу, так что имейте это в виду.
Задача
Мое намерение состояло в том, чтобы иметь возможность ограничить доступ к (некоторым) загрузкам и соответственно загрузкам. И чтобы никто случайно не имел к ним доступа, не случайно или если кто-то знал имя файла, файлы должны быть действительно конфиденциальными и безопасными. Ведь только определенные люди должны иметь доступ без исключений.
Кроме того, мне не нужно было приватизировать весь сайт, это было бы контрпродуктивно - оно используется для публичных презентаций. Более того, я хотел, чтобы решение было легким в использовании, по той простой причине, что некоторые люди, работающие с ним, не являются компьютерными экспертами, как это часто бывает.
Вопрос
Отсюда вопрос: существует ли (относительно) простой способ ограничить доступ к (некоторым) загрузкам и соответствующим загрузкам? И, как я это сделал, это означает способ действительно защитить и защитить их?