Re: Подскажите как запретить доступ к POST с определенных IP

Maxim Dounin mdounin at mdounin.ru
Sat Feb 23 16:54:47 UTC 2013


Hello!

On Sat, Feb 23, 2013 at 02:30:21PM +0200, Станислав wrote:

> 23.02.2013 13:35, Maxim Dounin пишет:
> >Hello!
> >
> >On Sat, Feb 23, 2013 at 01:26:30PM +0200, Станислав wrote:
> >
> >>Подскажите пожалуйста как лучше реализовать запрет на доступ к
> >>методу POST с определенных IP.
> >Как-то так:
> >
> >     limit_except GET {
> >         allow 192.168.1.0/32;
> >         deny  all;
> >     }
> >
> >http://nginx.org/r/limit_except/ru
> >
> Спасибо Максим!
> 
> Подскажите пожалуйста можно ли избавится от if в такой конструкции:
> 
> geo $redirect_ip {
>     default        0;
>     127.0.0.1      1;
>     192.168.1.0/24 1;
> }
> 
> limit_except POST {
> 
>  if ($redirect_ip) {
>   return 301      http://domain.com;
>  }
> 
> }

Сделав ровно то, что написано выше - написав правила allow/deny 
вместо if'а.

Если тех, кому нельзя, нужно куда-то перенаправлять - то вынести 
эту логику в обработку 403, как-то так:

    error_page 403 = /403;

    location / {
        limit_except GET {
            allow 127.0.0.1;
            allow 192.168.1.0/2;
            deny all;
        }

        ...
    }

    location = /403 {
        return 301 http://domain.com;
    }

-- 
Maxim Dounin
http://nginx.com/support.html



Подробная информация о списке рассылки nginx-ru