Разрешить скачивание с одного сайта одному юзеру.

Обсуждение программы редиректора
Ответить
Digger
Сообщения: 8
Зарегистрирован: Чт июл 14, 2005 17:06
Контактная информация:

Разрешить скачивание с одного сайта одному юзеру.

Сообщение Digger »

Возможно ли разрешить скачивание с указанного сайта указанному пользователю?
Т.е. всем запрещено скачивать файлы *.zip с любых сайтов. Но пользователь user должен иметь возможность скачать file.zip с сайта www.site.ru. Можно реализовать?

Slava
Site Admin
Сообщения: 2251
Зарегистрирован: Пт апр 02, 2004 12:34
Контактная информация:

Re: Разрешить скачивание с одного сайта одному юзеру.

Сообщение Slava »

Digger писал(а):Возможно ли разрешить скачивание с указанного сайта указанному пользователю?
Т.е. всем запрещено скачивать файлы *.zip с любых сайтов. Но пользователь user должен иметь возможность скачать file.zip с сайта www.site.ru. Можно реализовать?
можно сделать только разрешение скачивать все zip файлы указанному пользователю, при помощи allow_ip или allow_id или разрешить скачивать этот файл всем при помощи allow_urls

Goblin Shi'k L'Grubbr
Сообщения: 49
Зарегистрирован: Ср окт 20, 2004 12:50
Контактная информация:

Сообщение Goblin Shi'k L'Grubbr »

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

Запрет ставится в PCRE, перечислением запрещенных расширений. Это легко, делается один раз и потом не меняется (разве что придумают новый архиватор с новым расширением).

Вопрос в том КАК РАЗРЕШИТЬ закачку избранных архивов? В сквиде это решается назначением двух ACL: запретить все архивы, кроме разрешеных. Причем, разрешающие правила описаны через PCRE, значит allow_urls не подходит. Я, например, разрешаю закачивать все архивы, в URL которых есть строка "price" или "referat".

allow_urls не подходит еще и из-за своей "глобальности". т.к. ее действие распространяется на все секции.

РЕШЕНИЕ!!! Если запрет описывается в PCRE, то и "бороться" с этим надо тоже в PCRE. Я не смог найти как в PCRE описать "все, кроме...". Все что описано в разных руководствах не срабатывало. Но, если объединить PCRE запрета и разрешения, вынести их ОТДЕЛЬНОЙ СЕКЦИЕЙ, поместить ее ПЕРЕД ЗАПРЕЩАЮЩЕЙ, то все становится на свои места.

Пример: ЕСТЬ правило "<DIGITAL>". Состоит из одной строки в PCRE, запрещает обращение к любым сайтам, если хост указан только IP-адресом. НУЖНО разрешить доступ к локальным страницам (например для настройки принт-сервера по веб-интерфейсу).

1. Создаем секцию "<DIGIT_ALLOW>" (например).
2. В pcre указываем что мы разрешаем -- маску локальных адресов, или в urls конкретный IP.
3. В конфиге РЕЖИКА, перед секцией "<DIGITAL>" пишем:

<DIGIT_ALLOW>
ban_dir /usr/local/etc/rejik3/banlists/DIGIT_ALLOW
url #URL#
log off

4. Перезапускаем РЕЖИК и получаем удовольствие от работы :)

5. Немного пошевелив мозгами, создаем подобные секции для архивов и МР3.

А уж кто получит доступ к разрешающей секции, это зависит от вашей фантазии.

ЗЫ Если честно, то у меня пока работает только <DIGIT_ALLOW>. Нет времени проверить как поведут себя более сложные правила. IMHO, проблем быть не должно.

Ответить