/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?
спасибо, Дмитрий
Нет проблем с использованием 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 .
Существует ряд проблем безопасности при использовании короткоживущих 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.