Сделал закрытый сайт, который доступен только для зарегистрированных пользователей. Т. е., если мы вводим адрес любой страницы, не будучи авторизированным, браузер нас перебрасывает на страницу авторизации.
Но вот беда – если вбить в браузер прямой путь к любому загруженному файлу, то он открывается (скачивается) во всех случаях. Как бы решить эту проблему? Я знаю что можно практически в любой панели управления хостингом запаролить папку загрузок – но сможет ли тогда движек класть туда файлы и доставть их оттуда для зарегистрированных пользователей? (По крайней мере, адекватных плагинов для нормальной работы загрузок при таком случае я не нашел)
Какие кто знает возможные варианты выхода из данной ситуации (загружать файлы через 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 антилич"
Пасибочки! Ну вот, оказалсь намного проще…
Правда, непоянтно, насколько такой способ действенный и безропасный… Т.е. каковы шансы обойти защиту?
И еще, вопрос от чайника.
Можно так, или можно как-то оптимизировать-улучшить? (Например, может последние две строки перенсти к остальным строкам с RewriteCond?)
Обойти – раз плюнуть. Для того, кто понимает 🙂
Не сломалось – не чини. С одной стороны, им бы хорошо до кучи сидеть, а с другой – WP при смене ЧПУ может снести всё, что между # BEGIN WordPress и # END WordPress
Ну, для хакера-то или просто шарящего человека найти дыру в моих работах наверное не составит труда.
А это способ похоже отлично сработает в том случае, если кто то из тех, кто имеет доступ к самому сайту, по-дурости где-то выложит прямую ссылку на файл – таким образом те, кому это не надо, не смогут ничего скачать 🙂
Отлично! Мне нравятся ваши принципы работы 🙂 Спасибо вам!!!