Защищенне загруженные файлы

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

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

Какие кто знает возможные варианты выхода из данной ситуации (загружать файлы через download monitor, проставляя галочку "member file" не предлагать – хочется чтобы файлы "защищались" автоматом при работе со стандатрным загрузчиком вордпресса) ?

Тому кто поможет – бутылка коньяка!

а как узнают прямой путь к загруженному файлу?

Мой совет — забей на это. Лепрозорий тоже закрытый сайт, но картинки из него тоже можно скинуть другу по аське и он увидит картинку.
То есть, если в Лепрозории такое не сделали, то скорее всего и нет решения.

Я знаю что можно практически в любой панели управления хостингом запаролить папку загрузок - но сможет ли тогда движек класть туда файлы и доставть их оттуда для зарегистрированных пользователей?

Класть файлы в такие закрытые папки движку это не помешает, т.к. это директивы Аппачу на отдачу, а не php на запись. Но это будут другие логин и пароль, не юзерские от WP.

Слету могу предложить 2 варианта с использованием mod_rewrite.
1. "Лёгкий". Проверять куки, выставленные WP залогиненным юзерам. Защита "от лоха", что называется.
2. "Тяжелый". Все запросы из wp-upload отправлять на скрипт, который проверит авторизацию и, если таки да, отдаст файл.

Есть и более навороченный вариант – с использованием авторизационных модулей Апача. Но это уже hi-tech 🙂

Ну вам, дядя Юра, я и так уже должен не одну бутылку 🙂 и с радостью выставлюсь, если удостоите меня личной встречей (если не употребляете – можно заменить альтернативными продуктами 🙂 ).

ПЫСЫ. А сколько, навскидку, будет стоить вариант намбер ту реализовть в виде микроплагинчега?

А не боитесь перегруза движка? Все-таки прогонять файлы сквозь php – очень ресурсоемкое удовольствие.

Посмотрите плагины "файлопомоек", может получится просто вычленить из плагина нужную запчасть.

ПЫСЫ. Прейскурант – в блоге 😀 😀 😀

Ваш прейскурант – боян боянистый 🙂
Балиин, прийдется таки прочитать раздел про cookies и разобраться, каким молоком их запивать…
Все, спасибо, с меня причитается….

Посмотрел тут всякие похожие решения.
Можно добавить в functions.php функцию, которая с помощью $_SERVER[‘HTTP_REFERER’]; будет проверять откуда пользоветель получил ссылку на файл и если это не совпадает с адресом засекречнного сайта (на который могут попасть только избранные) то редиректиить его на страницу с посыланием нафиг? Так?

Для этого и php не надо. Погуглите ".htaccess антилич"

Пасибочки! Ну вот, оказалсь намного проще…
Правда, непоянтно, насколько такой способ действенный и безропасный… Т.е. каковы шансы обойти защиту?

И еще, вопрос от чайника.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /team/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /team/index.php [L]
</IfModule>

# END WordPress

RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?necu.org.ua/team [NC]
RewriteRule \.(jpg|jpeg|png|gif|zip|rar|mp3|cdr|psd|tif|doc|docx|rtf|txt)$ http://forum.maxsite.org/img/avatars/218.gif [NC,R,L]

Можно так, или можно как-то оптимизировать-улучшить? (Например, может последние две строки перенсти к остальным строкам с RewriteCond?)

Обойти – раз плюнуть. Для того, кто понимает 🙂

Не сломалось – не чини. С одной стороны, им бы хорошо до кучи сидеть, а с другой – WP при смене ЧПУ может снести всё, что между # BEGIN WordPress и # END WordPress

Обойти - раз плюнуть. Для того, кто понимает :)

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

Не сломалось - не чини. С одной стороны, им бы хорошо до кучи сидеть, а с другой - WP при смене ЧПУ может снести всё, что между # BEGIN WordPress и # END WordPress

Отлично! Мне нравятся ваши принципы работы 🙂 Спасибо вам!!!

Anonymous
Отправить
Ответ на: