ПРОЕКТЫ 


  АРХИВ 


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: nginx-ru@xxxxxxxxx
  • Subject: Re: Синтаксис конфигурационного файла
  • From: Andrei Nigmatulin <andrei.nigmatulin@xxxxxxxxx>
  • Date: Tue, 17 Mar 2009 00:17:20 +0300
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:to:subject:date :user-agent:references:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:message-id; bh=XlkCnX1P35L7QOd8UOrR4VzQxEFrtbGKW1OTcmLEvl0=; b=BW9wnb08QvWsPqlvN9cxVlwYDnbaNi0zSHllk/l/BayjW1sgzDCO+i88VL3PmASOYH ANLc5ARzzr21kp+oWo7i9bztc14FFJFbdsuzXbUNhLt+GVfNLlFl/9VRR2HMqq93DWJJ o6aHTTfKozkU+9ig1niImNJ4bx8KBRPgqiTtA=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:subject:date:user-agent:references:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :message-id; b=H2jA5D4Z/0AmA/GohWoD+4xn7ouYh/fV9Ipm5MKZYvE8gULRCbDfrB2VaS8727WV3j B1v5BP98PcTheB6hUu2bVsxLFxOEDRxGxZizPaON2tbDMeSJa08k1ibr3xmpGP/h3CX5 XiSSvdms5DsR1bq5nfBCOGpYnzirQ7IAfaEIk=
  • In-reply-to: <464562517.20090316225257@xxxxxxxxx>
  • References: <1608793199.20090317001152@xxxxxxxxxx> <464562517.20090316225257@xxxxxxxxx>

On Monday 16 March 2009 23:52, Gena Makhomed wrote:
> 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 - это ошибка,
>    потому что может быть задана только какая-то одна директива.

Можно иметь их вместе и учитывать порядок следования в конфиге, как это 
делается для директив allow и deny.


-- 
Andrei Nigmatulin
GPG PUB KEY 6449830D

Now I lay me down to sleep(3)
Pray the OS my core to keep
If I die before I wake
Pray the Disk my core to take


 




Copyright © Lexa Software, 1996-2009.