Защита файлов закачанных на сервер

Главные вкладки

Аватар пользователя Freedom Freedom 11 февраля 2010 в 0:18

Вопрос не новый. Просмотрел несколько тем, но конкретного ответа не нашёл.
Прикрепляем файл к материалу. Стоит приватный режим. Ссылку выдаёт типа sites.com/system/files/1.doc. Запрещаем просмотр материала определённой группе. Заходим под это ролью. Вводим sites.com/system/files/1.doc - Доступ запрещён, всё нормально. Теперь меняем ссылку на sites.com/sites/default/files/1.doc - "Открыть" или "Сохранить"?
Чем лечить? Править .htacces и давать доступ опредённым IP не выход. Правильнее записывать файл в БД. Соответсвенно возникает вопрос как заставить модуль Upload загружать в базу? Есть ли замена этому модулю?

Комментарии

Аватар пользователя vgoodvin vgoodvin 11 февраля 2010 в 2:28

Все проще. Можно прямой доступ к файлам в папке sites/default/files перенаправить на приватный друпала. В том же .htaccess или в конфигах.
К примеру строчка из конфига nginx:
rewrite ^/sites/default/files/(.*) /index.php?q=system/files/$1 last;

Аватар пользователя vgoodvin vgoodvin 19 февраля 2010 в 22:23

У меня под рукой сейчас апача нет сказать точно не могу. Стараюсь его избегать.
Попробуйте следующую строку вставить в корневой .htaccess после последнего правила RewriteRule:

RewriteRule ^/sites/default/files/(.*)$ index.php?q=system/files/$1 [L,QSA]

Если не надо закрывать все файлы то лучше это сделать выборочно по папкам, прописав соответствующие правила.