URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID12
Нить номер: 4006
[ Назад ]

Исходное сообщение
"АСЛ запреты и разрешения"

Отправлено niyaza , 18-Апр-06 10:05 
Уважаемые Админы!
Пожалуйста ответьте вот на что:
Стоит Сквид 2.11 стэйбл

Стоит ограничение -
acl exe urlpath_regex -i \.exe(\?:$)
http_access deny exe

при попытке доступа на сайт онлайн переводчика Мультитран.ру по адресу -
http://multitran.ru/c/m.exe? (итд.)
срабатывает выше описанный запрет, вопрос собственно как разрешить пользователем полбзоваться этим сайтом но запретить все остальные ссылки на .exe?

Прописывал -
acl multitran url_regex http://multitran.ru/c/m.exe?
или
acl multitran url_regex http://multitran.ru/c/m.exe(\?:$)
итд. итп.
Далее в Сквид конфе по порядку разрешал сначала Мултитран а потом запрешал .ехе, но почему-то не срабатовало. Может я не правильно пишу или вообще не то пишу и не туда, подскажите пожалуйста.


Содержание

Сообщения в этом обсуждении
"АСЛ запреты и разрешения"
Отправлено Андрей Слободяник , 18-Апр-06 11:22 
>Далее в Сквид конфе по порядку разрешал сначала Мултитран а потом запрешал
>.ехе, но почему-то не срабатовало.

Да, именно так и нужно.

acl multitran url_regex http://multitran.ru/c/m.exe
acl exe urlpath_regex -i \.exe(\?:$)
http_access allow multiran
http_access deny exe


"АСЛ запреты и разрешения"
Отправлено niyaza , 18-Апр-06 12:21 
>>Далее в Сквид конфе по порядку разрешал сначала Мултитран а потом запрешал
>>.ехе, но почему-то не срабатовало.
>
>Да, именно так и нужно.
>
>acl multitran url_regex http://multitran.ru/c/m.exe
>acl exe urlpath_regex -i \.exe(\?|$)
>http_access allow multiran
>http_access deny exe

Не работает. Также пробывал писать -
acl multitran url_regex http://multitran.ru/c/m.exe(\?|$)
acl exe urlpath_regex -i \.exe(\?|$)
http_access allow multiran
http_access deny exe

не хочет работать, например запрос слова в мултитране "ОК" (полная адресная строка http://multitran.ru/c/m.exe?HL=2&L1=1&L2=2&EXT=0&s=ok) дает опять запрет, что делать? Кто знает как правильно писать?


"АСЛ запреты и разрешения"
Отправлено Андрей Слободяник , 18-Апр-06 13:49 
>>>Далее в Сквид конфе по порядку разрешал сначала Мултитран а потом запрешал
>>>.ехе, но почему-то не срабатовало.
>>
>>Да, именно так и нужно.
>>
>>acl multitran url_regex http://multitran.ru/c/m.exe
>>acl exe urlpath_regex -i \.exe(\?|$)
>>http_access allow multiran
>>http_access deny exe
>
>Не работает. Также пробывал писать -
>acl multitran url_regex http://multitran.ru/c/m.exe(\?|$)
>acl exe urlpath_regex -i \.exe(\?|$)
>http_access allow multiran
>http_access deny exe
>
>не хочет работать, например запрос слова в мултитране "ОК" (полная адресная строка
>http://multitran.ru/c/m.exe?HL=2&L1=1&L2=2&EXT=0&s=ok) дает опять запрет, что делать? Кто знает как правильно писать?
>

У меня опечатка, нужно http_access allow multitran (вторую "t" пропустил).
А какой ты вкладываешь смысл в выражение (\?|$) ?
Дебаг ещё можно включить, посмотреть в логах, как работает.


"АСЛ запреты и разрешения"
Отправлено niyaza , 18-Апр-06 14:01 
>У меня опечатка, нужно http_access allow multitran (вторую "t" пропустил).
>А какой ты вкладываешь смысл в выражение (\?|$) ?
>Дебаг ещё можно включить, посмотреть в логах, как работает.

Так ведь после ехе идет еще куча знаков а (\?|$) означает любые и в любом количестве знаков.
А Сквид ругается именно на http://multitran.ru/c/m.exe?, то есть выдает сообщение типа нельзя идти на "http://multitran.ru/c/m.exe?"


"АСЛ запреты и разрешения"
Отправлено Андрей Слободяник , 19-Апр-06 11:48 
>Так ведь после ехе идет еще куча знаков а (\?|$) означает любые
>и в любом количестве знаков.
Мда? По-разному мы понимаем регулярные выражения.
Всегда думал, что любые и в любом количестве - это ".*" (без кавычек).
И, к примеру, abc матчит и 123abc345, и abc234, и 234abc?13245

Я бы предложил следующее:

# разрешить переводчик, с дополнительными параметрами или без них, неважно
acl multitran url_regex http://multitran.ru/c/m.exe

# запретить .exe, но только если спереди есть знак "/", то есть
# bla.execute.com - можно, а bla.com/foo.exe - нет
acl exe urlpath_regex /.*\.exe

http_access allow multitran
http_access deny exe

Не забудь про ацл-и доступа юзеров.