- nginx не отвечает 444, Аноним, 12:23 , 13-Июл-21 (1)
> > Почему он здесь отвечает 400 ?man strlen и думаем над "\x00\x00\x02\x00"
- nginx не отвечает 444, TyLLIKAH, 12:49 , 13-Июл-21 (2)
>> >> Почему он здесь отвечает 400 ? > man strlen и думаем над "\x00\x00\x02\x00" Спасибо, Капитан! строка "\x00\x00\x02\x00" нулевой длины по strlen, равна "" по strcmp и не входит во множество констант GET|POST|HEAD и, тем не менее, правило не срабатывает.
- nginx не отвечает 444, Аноним, 13:32 , 13-Июл-21 (3)
>>> >>> Почему он здесь отвечает 400 ? >> man strlen и думаем над "\x00\x00\x02\x00" > Спасибо, Капитан! строка "\x00\x00\x02\x00" нулевой длины по strlen, равна "" по strcmp > и не входит во множество констант GET|POST|HEAD и, тем не менее, > правило не срабатывает.скорее всего поток управления туда и не доходит, и в моих кодовых базах тоже бы не дошло 1. if (str == NULL || *str='\0') { ихБинПесец( 01 ); return; } // <= САМОЕ БАЗОВОЕ 2. if (!isValidUTF8(str)) { ихБинПесец( 02 ); return; } 3. if (!isAllowedCharset( str, charset )) { ихБинПесец( 03 ); return; } n. if (!...) { ихБинПесец( n ); return; } Тады копать сорцы на предмет логики обработки и цепочки дeфолтных обработчиков if ($request_method !~ ^(GET|POST|HEAD)$ ) { return 444; }
- nginx не отвечает 444, TyLLIKAH, 14:49 , 13-Июл-21 (4)
> скорее всего поток управления туда и не доходит, и в моих кодовых > базах тоже бы не дошло Спасибо, конечно, что вы мне отвечаете, но я не думаю, что nginx протянул бы столько лет с такой замечательной логикой сравнения строк, как вы описали... > ... *str='\0') { ихБинПесец( 01 ); return;
Пустая строка - это вполне себе легитимная строка. Какой песец ? Не надо так!
- nginx не отвечает 444, Аноним, 15:25 , 13-Июл-21 (5)
>> скорее всего поток управления туда и не доходит, и в моих кодовых >> базах тоже бы не дошло > Спасибо, конечно, что вы мне отвечаете, но я не думаю, что nginx > протянул бы столько лет с такой замечательной логикой сравнения строк, как > вы описали...Тады копать на предмет логики обработки конфигов и/или цепочки дeфолтных обработчиков
- nginx не отвечает 444, eRIC, 14:04 , 14-Июл-21 (6)
> Но иногда это срабатывает: > 135.125.245.246 https://domain.tld - [08/Jul/2021:03:55:44 +0300] "POST / HTTP/1.1" > 444 0 "-" "-" 0.000 И > Но > 193.70.3.242 http://domain.tld - [07/Jul/2021:00:28:18 +0300] "\x00\x00\x02\x00" 400 > 150 "-" "-" 0.044 > Почему он здесь отвечает 400 ? у вас проверка в nginx в секции https стоит, потому для https срабатывает, а для http нет.
- nginx не отвечает 444, TyLLIKAH, 14:34 , 14-Июл-21 (7)
> у вас проверка в nginx в секции https стоит, потому для https > срабатывает, а для http нет.Это я не совсем неудачно из логов надёргал записей. Проверка и там, и там. И для http, и для https может и сработать, а может и не сработать. Если делать запросы curl с пустым или пробельным UA, то срабатывает как надо и по http, и по https Но периодически присылают что-то, что, как я предполагаю, в логах выглядит как пустой UA, но для nginx таковым не является.
- nginx не отвечает 444, eRIC, 19:30 , 14-Июл-21 (8)
нужен конфиг nginx где logformat ваш виден. сервер один? случаем напрямую по IP не обращаются?
- nginx не отвечает 444, TyLLIKAH, 21:31 , 14-Июл-21 (9)
> нужен конфиг nginx где logformat ваш виден. сервер один? случаем напрямую по > IP не обращаются?/usr/local/etc/nginx/logs/formats.conf log_format main '$remote_addr $scheme://$host $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $request_time'; log_subrequest on; /usr/local/etc/nginx/logs/error.conf # error_log doesn't support variables error_log /var/log/nginx/default.error.log warn; Тех, кто напрямую обращается по ip, записываю в отдельный log и баню
|