Защитите доступ к статическим файлам с помощью Apache & Session [closed]

/assets
 - file1.mp3
 - file2.mp3
 ...
 - fileX.mp3

(миллионы файлов)

Поэтому я хочу предотвратить прямой доступ к контенту если пользователь не вошел в систему как http://domain.com/assets/file1.mp3

В идеале URL-адрес файла ресурса будет изменяться каждый раз, когда пользователь входит в систему, используя свой сеанс, например http://domain.com/assets/51303ca30479c7a79b75373a/file1.mp3

как это сделать? итак, цель - это для частого изменения URL-адресов и перед перенаправлением на фактический двоичный файл.

Я понимаю, что могу сделать что-то вроде этого

RewriteRule ^(.*\.mp3)$ /path/to/auth.php?i=$1

Но я предпочитаю не использовать PHP для обработки аутентификации. Есть ли элегантный способ решения этой проблемы с помощью apache?

спасибо, Дмитрий

0
задан 1 March 2013 в 08:25
2 ответа

Нет проблем с использованием PHP (посмотрите, например, https://stackoverflow.com/questions/2187200/using-php-apache-to-restrict-access-to- статические файлы-html-css-img-etc ).

Но если вы не хотите его использовать, вы можете ознакомиться с ответами на соответствующие вопросы: https://stackoverflow.com/questions/6325712/deny-direct-access-of-file-except- server-localhost и https://stackoverflow.com/questions/12299556/restrict-html-files-access .

1
ответ дан 4 December 2019 в 14:16

Существует ряд проблем безопасности при использовании короткоживущих URL-адресов в том виде, который вы предлагаете.

  • URL-адреса и файлы будут кэшироваться в прокси-серверах и на компьютерах пользователей.

  • Панели инструментов браузера (особенно те, которые поставляются компаниями, которые запускают поисковые роботы, такие как Alexa, Google, Netcraft, Yahoo и т. Д.) Могут сообщать URL-адреса своим материнским компаниям, чтобы указать, что бот должен прийти и просканировать этот URL.

  • Если вы не являетесь Если SSL не используется, URL-адреса и содержимое файлов легко доступны для любого пользователя сети. Обычно это включает всех, кто пользуется тем же общим Wi-Fi-соединением, что и пользователь, и, поскольку бесплатный открытый Wi-Fi становится все более и более распространенным, это вероятный сценарий.

  • Ваши недолговечные URL-адреса недостаточно краткосрочные. Если пользователь входит в систему только один раз в день, у любого, у кого просочился URL-адрес, будет 24 часа на его получение.

  • Если эта длинная строка в URL-адресе является идентификатором сеанса пользователя, то, вероятно, произойдет утечка тем же способом, что и для URL-адресов выше, но идентификатор сеанса будет более чувствительный. Знание идентификатора сеанса позволяет злоумышленнику захватить сеанс. Так работает расширение Firesheep. Пытаясь сохранить изображения в секрете таким образом, вы фактически подвергнете своих пользователей большему риску.

Использование обычного метода Cookies для хранения идентификаторов сеансов предотвращает кеширование и утечку панели инструментов браузера. Использование SSL предотвращает прослушивание сети и некоторое кэширование. Использование стандартной HTTP-аутентификации с одним из модулей аутентификации Apache позволяет избежать использования PHP.

Идентификатор сеанса, вероятно, произойдет утечка тем же способом, что и URL-адреса выше, но идентификатор сеанса более чувствителен. Знание идентификатора сеанса позволяет злоумышленнику захватить сеанс. Так работает расширение Firesheep. Пытаясь сохранить изображения в секрете таким образом, вы фактически подвергнете своих пользователей большему риску.

Использование обычного метода Cookies для хранения идентификаторов сеансов предотвращает кеширование и утечку панели инструментов браузера. Использование SSL предотвращает прослушивание сети и некоторое кэширование. Использование стандартной HTTP-аутентификации с одним из модулей аутентификации Apache позволяет избежать использования PHP.

s идентификатора сеанса, вероятно, произойдет утечка тем же способом, что и URL-адреса выше, но идентификатор сеанса более чувствителен. Знание идентификатора сеанса позволяет злоумышленнику захватить сеанс. Так работает расширение Firesheep. Пытаясь сохранить изображения в секрете таким образом, вы фактически подвергнете своих пользователей большему риску.

Использование обычного метода Cookies для хранения идентификаторов сеансов предотвращает кеширование и утечку панели инструментов браузера. Использование SSL предотвращает прослушивание сети и некоторое кэширование. Использование стандартной HTTP-аутентификации с одним из модулей аутентификации Apache позволяет избежать использования PHP.

Так работает расширение Firesheep. Пытаясь сохранить изображения в секрете таким образом, вы фактически подвергнете своих пользователей большему риску.

Использование обычного метода Cookies для хранения идентификаторов сеансов предотвращает кеширование и утечку панели инструментов браузера. Использование SSL предотвращает прослушивание сети и некоторое кэширование. Использование стандартной HTTP-аутентификации с одним из модулей аутентификации Apache позволяет избежать использования PHP.

Так работает расширение Firesheep. Пытаясь сохранить изображения в секрете таким образом, вы фактически подвергнете своих пользователей большему риску.

Использование обычного метода Cookies для хранения идентификаторов сеансов предотвращает кеширование и утечку панели инструментов браузера. Использование SSL предотвращает прослушивание сети и некоторое кэширование. Использование стандартной HTTP-аутентификации с одним из модулей аутентификации Apache позволяет избежать использования PHP.

1
ответ дан 4 December 2019 в 14:16

Теги

Похожие вопросы