Синтаксис конфигурационного файла
Andrei Nigmatulin
andrei.nigmatulin at gmail.com
Tue Mar 17 00:17:20 MSK 2009
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
More information about the nginx-ru
mailing list