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

Igor Sysoev igor at sysoev.ru
Sun Feb 24 06:25:09 UTC 2013


On Feb 23, 2013, at 20:54 , Maxim Dounin wrote:

> 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;
>    }

Можно сразу
error_page 403 =301 http://domain.com;


--
Igor Sysoev
http://nginx.com/support.html



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