Re: auth_digest -- несколько вопросов

Maxim Dounin mdounin at mdounin.ru
Thu Feb 27 12:52:31 UTC 2014


Hello!

On Thu, Feb 27, 2014 at 02:08:38AM +0400, denis wrote:

> 26.02.2014 20:40, Maxim Dounin пишет:
> >>Нет, по https тоже можно отдавать. Нельзя отдавать с разных внешних
> >>серверов
> >>(продакшн отдельно, тестовые сервера отдельно)
> >>в чистом виде https нам ничем не поможет, все-равно нужна авторизация.
> >Ну так и в чём тогда проблема использовать basic + ssl, как и
> >предлагалось ранее?  Исходный вопрос, на который хотелось получить
> >ответ, - зачем вам digest, да ещё и в виде стороннего модуля,
> >когда есть способ проще и лучше.
> >
> >Впрочем, можно считать, что ответ я получил - какой-либо
> >осмысленной причины нет.  Спасибо.
> потому что конфликт с авторизацией битрикса! не работает басик+битрикс.
> Иначе к чему это всё?...

Так и digest не работает.  И не может работать - стандарт такой.  
С чего я, собственно, и начал.

> >В подобной схеме ничто не помешает пользователю прислать заголовок
> >Authorization с якобы данными для бекенда, а на самом деле запрос
> >сделать туда, где никакие пароли бекенд не проверяет - тем самым
> >сделав аутентификацию на уровне nginx'а бессмысленной.
> на девел-машину? И толку? Это простое соблюдение лицензии битрикса, не
> более.

Лицензию вы таким образом не соблюдаете, т.к. доступ не закрыт.

> >Вариант, который будет работать - это явно разделить (e.g., на
> >уровне location'ов) те адреса, где за аутентификацию отвечает
> >nginx, и те, где этим занимается бекенд.
> после авторизации в админке ВСЕ урлы связаны с админкой, включая корень
> сайта. Сверху появляется меню отладки и редактирования.

Подозреваю, что после успешной аутентификации соответствующая 
информация просто записывается в php-сессию.  Т.е. нужно именно 
явно отделить адрес(а), где бекенд требует basic-аутентификацию, и 
всё заработает.

> >Потому что "^~" - это не "признак регэкспа". Это, наоборот,
> Где это _внятно_ прописано в доке?
> http://dragonflybsd.blogspot.ru/2012/12/nginx-location.html
> вот тут чуть внятнее, с интерпретацией.

Цитата из уже приводившейся дважды в этой дискуссии ссылки, 
http://nginx.org/r/location/ru:

: Регулярные выражения задаются либо с модификатором “~*” (для 
: поиска совпадения без учёта регистра символов), либо с 
: модификатором “~” (с учётом регистра).

И ещё одна цитата, оттуда же:

: Если у совпавшего префиксного location’а максимальной длины 
: указан модификатор “^~”, то регулярные выражения не проверяются.

Т.е. явно и однозначно прописан закрытый список модификаторов, с 
помощью которых задаются регулярные выражения, а также явно и 
однозначно сказано, что модификатор "^~" - это модификатор 
префиксного location'а.

-- 
Maxim Dounin
http://nginx.org/



Подробная информация о списке рассылки nginx-ru