ПРОЕКТЫ 


  АРХИВ 


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: Синтаксис конфигурационного файла


  • To: "Denis V. Roghnovskiy" <nginx-ru@xxxxxxxxx>
  • Subject: Re: Синтаксис конфигурационного файла
  • From: Gena Makhomed <gmm@xxxxxxxxx>
  • Date: Mon, 16 Mar 2009 22:52:57 +0200
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=csdoc.com; s=dkim; t=1237236790; bh=qoGv3NW63/2Y4KuA8TRrP8BxxreRXH6hcVK1W0LfauM=; h=Date:From:X-Mailer:X-Priority:Message-ID:To:Subject:In-Reply-To: References:MIME-Version:Content-Type:Content-Transfer-Encoding; b=g+9iTgSc49hV3oEEP3IgQalzwLehleOxyrT+VOP7hyx5ZagqKNolZLkq6IYwp/9Sw lbRtT4/1ILiiZHQoc1dQ5YmlqDsTGfA/CuUUKfDzMq/glAdEZ+2aloblg7fjL7wogeY f0RZG46xDOXVg+SjsEwlfwBHRKB8jhtxoA2UOpk=
  • In-reply-to: <1608793199.20090317001152@xxxxxxxxxx>
  • References: <1608793199.20090317001152@xxxxxxxxxx>

On Monday, March 16, 2009 at 21:11:52, Denis V. Roghnovskiy wrote:

DVR> Мне потребовалось реализовать в конфиге nginx проверку реферала,
DVR> все хорошо, но вот не найду нигде как оформить синтаксис.

http://sysoev.ru/nginx/docs/http/ngx_http_referer_module.html

?

DVR> Сейчас все выглядит так:

DVR>                 if ($http_referer ~ .some_value.){
DVR>                     return 403;
DVR>                 }
DVR>                 if ($http_referer ~ .some_value_2.){
DVR>                     return 403;
DVR>                 }
DVR>                 if ($http_referer ~ .some_value_3.){
DVR>                     return 403;
DVR>                 }

DVR> В итоге количество вхождений увеличивается ровно на количество
DVR> if`ов, возможна ли реализация "в одну строку" и проверкой
DVR> в одном if`е но с оператором подобным 'or' ?

если надо блокировать только адреса из определенного списка
в referer - подозреваю, что проверку можно написать так:

if ( $invalid_referer = 0 ) {
     return 403;
}

PS можно было бы слегка доработать напильником модуль
   http_referer, добавив директиву invalid_referers,
   когда все остальные referers будут считаться valid,
   а только для referes из даного списка $invalid_referer
   будет не равно 0. одновременное присутствие в конфиге
   директив valid_referers и invalid_referers - это ошибка,
   потому что может быть задана только какая-то одна директива.

-- 
Best regards,
 Gena




 




Copyright © Lexa Software, 1996-2009.