ПРОЕКТЫ 


  АРХИВ 


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: nginx-0.1.43 parser error



On Tue, 27 Sep 2005, Alexander Gnevshev wrote:

Igor Sysoev wrote:
      On Thu, 22 Sep 2005, Alexander Gnevshev wrote:

            Чтобы:
            - была возможность избавиться от страниц-дублей;


      Где - на сайте или в ссылках ?

Везде. В том числе в поисковиках.

А что это даёт, кроме лишнего запроса клиенту ? Веб переделать нереально.
Ты считаешь, что если кто-то поставил ссылку /dir, а сервер выдал
на неё редирект /dir/, то этот кто-то озаботится исправлением этой ссылки
у себя ? Сильно сомневаюсь.

Что касается поисковиков, то они индексы обновляют регулярно, достаточно
исправить у себя.

            - всегда твёрдо знать, что параметры URI в
            location сравниваются напрямую с URI, пришедшим
            от пользователя (без преобразований);


      Ну, например, частный случай: /page.html и //page.html. Что
      предлагается
      делать со вторым ?

Оставлять как есть и обрабатывать все location как есть, даже если это
вызовет 404.

А что делать /.././/./%2E%2E/../etc/passwd ?

            - иметь полный контроль над URI, чтобы можно было
            хотя бы в логе увидеть подобные запросы;


      %request пишет в лог оригинальный URI.

Это значит, что при подсчёте статистики будет некоторая погрешность, так
как никто никогда не делает обработку a-la shell для директорий в URI при
обработке логов.

А вот это напрасно. Я в логах неоднократно видел /~user/ и /%7Euser/.

            - не навязывать администраторам nginx парсинг URI
            без возможности его отключения.


      А как же URI обратывать, если его не парсить ? Как его потом
      сравнивать с location ?

Под парсингом в данном случае я имел в виду автоматические замены для
каталогов:
 *  два и более слэша преобразуются в один слэш: "//" - "/";
 *  убираются ссылки на текущий каталог: "/./" - "/";
 *  убираются ссылки на предыдущий каталог: "/dir/../" - "/".
Вообще в наше время считать, что URI является прямым отображением на
директории на диске, -- прямая ошибка. Это уже давно не актуально. На
большинстве крупных ресурсов URI внутри обрабатывается (переписывается
rewrite и пр.) и с именем файла не совпадает.

Также очень интересен вариант, когда в URI передаётся параметр для
редиректа на другой сайт (двойной слэш). Так тоже делают, но этот вариант
не будет работать с nignx.

Именно поэтому очень хочется иметь возможность влиять на поведение nginx
в этом вопросе.

Ну вот пусть бэкенд и разбирается со странными URI, возможность передать
в оригинальном виде есть.


Игорь Сысоев
http://sysoev.ru




 




Copyright © Lexa Software, 1996-2009.