mike
  • 0
Гуру

Как ограничить доступ к загруженным файлам?

  • 0

У меня есть ограниченная область на веб-сайте, доступ к которой могут получить только авторизованные пользователи. Для этого я создал шаблон страницы с условием «current_user_can()».

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

Есть ли способ ограничить доступ к загруженным файлам?

РЕДАКТИРОВАТЬ: я хочу уточнить, файлы должны быть доступны только для зарегистрированных пользователей.

Share
  1. На самом деле это не вопрос WordPress, но вы можете добавить правило перезаписи, чтобы предотвратить доступ, если реферер не является вашим собственным доменом.

    [Обновлять]

    Вам нужно будет сделать 2 вещи

    1. Добавьте правило перезаписи (либо напрямую с помощью.htaccess, либо с помощью WP_rewrite (ссылка Кодекса). Цель здесь — отклонить запросы к вашим документам, которые не имеют вашего домена в качестве реферера — это остановит людей, вставляющих ссылку в адрес браузера. бар

    2. Оберните ссылки для скачивания в условный блок is_user_logged_in (ссылка на Кодекс) — таким образом, они будут отображаться на странице только в том случае, если пользователь вошел в систему.

    Пример кода доступен в соответствующем вопросе:

    • 0
    • Привет, Ану, реферер должен быть моим доменом + посетитель должен быть зарегистрированным и подключенным пользователем. Я считаю, что это вопрос WP.

      • 0
    • Мне кажется, что это вопрос htaccess.

      • 0
    • Привет, ану, да, это не показывает файлы, если пользователь не вошел в систему, но что, если пользователь угадывает имя файла? Он все еще может получить к нему доступ! И это то, чего я хочу избежать. Позвольте мне привести пример, допустим, у нас есть корпоративный веб-сайт с некоторыми публичными документами (report2011.pdf, report2010.pdf и т. д.) и некоторыми личными документами (report2009.pdf, report2008.pdf). Даже если личные документы не отображаются на общедоступном веб-сайте, кто-то может легко угадать некоторые имена файлов (на основе структуры общедоступных) и, таким образом, получить доступ к частным документам, просто введя URL-адрес в адресную строку.

      • 0
    • Два слова: спуфинг реферера. Ваше решение — не что иное, как «безопасность за счет неясности»: злоумышленник не может получить доступ к медиафайлу, если он знает его полный URL-адрес. Вместо этого он/она должен знать один из допустимых URL-адресов реферера. Что мы получили вместо более высокой административной сложности? ИМХО ничего. На момент написания этой статьи существуют «тысячи» плагинов для защиты страниц и сообщений, но в WordPress по-прежнему отсутствует полезная защита для медиа. Разработчики WordPress (и плагинов) избегают этого, так как знают, к каким последствиям

      • 0

Оставить ответ

You must login to add an answer.