ПРОЕКТЫ 


  АРХИВ 


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: Отрицание в valid_referers


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: Отрицание в valid_referers
  • From: Валентин Бартенев <ne@xxxxxxxx>
  • Date: Mon, 9 Jul 2012 22:45:03 +0400
  • Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=vbart.ru; s=mail; h=Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:In-Reply-To:References:Date:Subject:To:From; bh=4McD7gUqUTLso+9ZsnRqui7Nsjg/YZ5IuO1UD2W48d4=; b=clJPTgpPjLm67rm65yy9UHJYYJDZ8LdFrXMNG5n3RUVAT/180rTwwSaxOPeJoNMg/El6lEpkz7z97b7sLqR+hSeT80oqisqTXVHF5MDQttwrEPzSOLSC2taZcyU8hq8CvmsjZqQjLzHdrbXnzSUPQ769KKOb2iNyiKyFKlZ3rJvVJc5NjuWRrEvQAwe35PJ3j4NHOXk5wvrbMiE3uEOm9owCVJWolZoKqomk5zphnSiwi9Wz1MCsoVL4+0tKFV7ri9p7COwLD7e753wdUaSUeAGd2/tnGyzxZ+D7MPNGneq6Tf4rKrLc0oruLm24k/dto7xCrm5uuiM67TcyYLWgvw==;
  • In-reply-to: <4FFB1C86.50309@itcraft.org>
  • References: <4FFB0BF2.2090209@itcraft.org> <201207092143.09146.ne@vbart.ru> <4FFB1C86.50309@itcraft.org>

On Monday 09 July 2012 22:01:42 Sergey Kobzar wrote:
> On 07/09/12 20:43, Валентин Бартенев wrote:
> > On Monday 09 July 2012 20:50:58 Sergey Kobzar wrote:
> >> Необходимо сделать отрицание строки в valid_referers. Сейчас
> >> valid_referers выглядит так:
> >> 
> >> valid_referers none blocked server_names ~(?!domain);
> >> 
> >> 
> >> Но если реферером выступает домен domain-test.com? то блок
> >> 
> >> if ($invalid_referer) {
> >> 
> >>           rewrite ^ /block.php;
> >> 
> >> }
> >> 
> >> Не срабатывает.
> >> 
> >> Что не так?
> > 
> > domain-test.com присутствует в server_names или совпадает с одним из
> > регулярных выражений?
> 
> Я неполно описал задание:
> 
> Есть домен domain.com. Необходимо закрыть доступ, где реферером является
> domain<something>.tld или <something>domain.tld (tld может быть отличным
> от исходного). В server_names присутствует *.domain.com
> 
> Т.е. изначально я предполагал регекспом выделить запросы, где не
> встречается domain в имени сервера...
> 
> Надо бы его переписать, а то получается я полностью строку Referer
> проверяю, а не только server name....
> 

У вас вообще она не правильная. Должно быть как-то так: ^((?!domain)[^/])*/

--
Валентин Бартенев
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.