ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Странности с auth_basic и рев райтом



Hello!

On Mon, Nov 30, 2009 at 11:39:45PM +0300, Александр Сытар wrote:

> Мог бы кто-нибудь объяснить странность поведения следующей конфигурации
> (0.7.64):
> 
> location = / {
>  rewrite ^ /index.php$uri last;
> }
> 
> location /admin {
>  auth_basic "Resticted Area";
>  auth_basic_user_file .htpasswd;
>  root /path/to/site/root;
> *  rewrite ^ /index.php$uri last #  <- epic fail, входим без пароля*

rewrite срабатывает до проверок авторизации

[...]

> Однако если сделать так, то всё работает как и задумывалось.
> 
> location /admin {
>  auth_basic "Resticted Area";
>  auth_basic_user_file .htpasswd;
>  root /path/to/site/root;
> * try_files $uri /index.php$uri; # <- работает как и должно, запрос пароля.

try_files срабатывает после проверок авторизации

При этом надо не забыть /index.php/admin... убрать в internal 
location и убедиться что какой-либо другой внетренний редирект 
туда привести не может.  А лучше - тоже закрыть авторизацией.  В 
противном случае прямой запрос к /index.php/admin даст 
пользователю доступ, который вы так хотели закрыть.

[...]

> Как же надо по правильному это сделать?

По правильному - запрос авторизации должен случаться там же, где и 
обработка запроса.

    location /admin {
        auth_basic ...
        fastcgi_pass ...
        fastcgi_param  SCRIPT_FILENAME  $document_root/index.php;
        fastcgi_param  PATH_INFO        $uri;
        ...
    }

Maxim Dounin

p.s. Не следует использовать html при отправке писем в рассылку.  
Спасибо.

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.