простое решение для ограничения доступа к (некоторым) загрузкам / загрузкам

11

Первоначальный ситуация

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

Дополнительные примечания

Как правило, неплохо бы повысить безопасность вашей установки WordPress - например, защитить свою wp-config.php- есть много вещей, которые вы можете и должны сделать. Существует масса информации, как это сделать. Я нахожусь в контексте этого вопроса в основном о моих загрузках / загрузках.

Загрузка WordPress не защищена, каждый может просматривать uploadsпапку, если вы не помешаете этому с помощью .htaccess:

Options All -Indexes

.htaccessФайл должен быть помещен в uploadsпапку. Но это на самом деле не обеспечивает их безопасность, а только усложняет поиск файлов. Кроме того, вы можете предотвратить hotlinking, существенно ограничив доступ на основе referrer- хотя это немного другой случай, я подумал, что упомяну это, я не буду более подробно останавливаться, вы можете найти много информации об этом.

Конечно, есть возможность сделать посты приватными или создать собственный тип поста с подходящими файлами шаблонов, чтобы сделать этот тип поста приватным, но это не защищает ваши файлы. То же самое можно сказать и об обёртывании файлов в условных выражениях типа is_user_logged_in()или is_admin().

На сайте sidenote есть множество плагинов, которые обещают сделать ваши файлы безопасными и защищенными, но многие из них просто притворяются, что некоторые из них приведены выше. Я просто излагаю это, потому что я уверен, что это известно не каждому бобу, так что имейте это в виду.

Задача

Мое намерение состояло в том, чтобы иметь возможность ограничить доступ к (некоторым) загрузкам и соответственно загрузкам. И чтобы никто случайно не имел к ним доступа, не случайно или если кто-то знал имя файла, файлы должны быть действительно конфиденциальными и безопасными. Ведь только определенные люди должны иметь доступ без исключений.

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

Вопрос

Отсюда вопрос: существует ли (относительно) простой способ ограничить доступ к (некоторым) загрузкам и соответствующим загрузкам? И, как я это сделал, это означает способ действительно защитить и защитить их?

Nicolai
источник
Вы должны добавить свое решение в качестве ответа, а не встраивать его в вопрос.
s_ha_dum
И, пожалуйста, используйте правильные прописные / строчные буквы. Читается как чат ...
Кайзер
Спасибо за конструктивную критику, я буду редактировать и реструктурировать ее в ближайшее время.
Николай

Ответы:

8

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

Результат исследования

Результаты моего исследования были:
1. получить файлы вне корня документа, wwwпапки;
2. запретить любой прямой доступ к папке, содержащей файлы;
3. позволить скрипту обрабатывать запросы к файлам;
Источники для этих пунктов - по крайней мере, в основном - включены в мой вопрос.

Решение

  1. Я установил плагин » wp-downloadmanager «
    • папка с именем filesбудет создана внутри wp-contentпроцесса;
  2. Я добавил .htaccessфайл в новую filesпапку:
    • содержание .htaccess:
      Options All -Indexes
      Order Deny,Allow
      Deny from all
  3. Я изменил одну важную опцию плагина:
    • я имею в виду вариант download method;
    • Я изменил это на output file;
  4. Я добавил несколько файлов через интерфейс плагина:
    • есть опция под названием allowed to download;
    • который позволяет ограничить доступ на основе роли / возможностей пользователя;
  5. Я сделал некоторое тестирование:
    • нет прямого доступа к файлам - не через адресную строку или wget;
    • общедоступные загрузки доступны через их постоянные ссылки - я выбираю »хорошие постоянные ссылки: да« и »скачать URL: идентификатор файла« на панели параметров - адресная строка / wget тоже работает;
    • защищенные, ограниченные загрузки доступны только в том случае, если вы вошли в систему как пользователь с правильной ролью / возможностями;

Заключительные мысли

Я думаю, что решение в значительной степени следует за результатами исследований. Помимо размещения файлов снаружи. Но ограничение доступа к каталогу и его защита и разрешение скрипту обрабатывать запросы к файлам уже выполнены. Ограничение доступа обрабатывается .htaccessи сценарий в этом случае является плагином wp-downloadmanger.

Дополнительные примечания

  • это абсолютно необходимо , чтобы изменить download methodкoutput file
  • и, конечно, это обязательно, что .htaccessфайл на месте

  • чтобы проверить тот факт, что плагин берет на себя роль скрипта, взгляните на wp-downloadmanger.phpстроки 207 - 227 (версия 1.6.1); это подразумевается как дополнительная точка к связанной информации

Nicolai
источник