Re: json log и "экранирование" неопределенных переменных

2020-07-26 Пенетрантность Валентин Бартенев
On Sunday, 26 July 2020 19:42:58 MSK Slawa Olhovchenkov wrote:
> On Sun, Jul 26, 2020 at 07:29:04PM +0300, Валентин Бартенев wrote:
> 
> > On Sunday, 26 July 2020 19:15:20 MSK Slawa Olhovchenkov wrote:
> > > On Sun, Jul 26, 2020 at 05:55:57PM +0300, Sergey Kandaurov wrote:
> > > 
> > > > 
> > > > > On 24 Jul 2020, at 14:13, Slawa Olhovchenkov  wrote:
> > > > > 
> > > > > Внезапно выяснилось что если пишем в json формате (ну ок,
> > > > > экранирование json), то отсутсвующе числовые значения все ломают.
> > > > > они идут как "-". может в этом случае их выводить как null?
> > > > 
> > > > Такая подстановка используется в эскейпинге по умолчанию,
> > > > если значение переменной не найдено.  В других форматах
> > > > эскейпинга значение не выводится, подробнее здесь:
> > > > http://nginx.org/r/log_format/ru
> > > 
> > > ну по спецификации json отстувиие должно кодироваться как null, не?
> > 
> > Это где такое написано? 
> 
> https://stackoverflow.com/questions/21120999/representing-null-in-json
> 

Это не спецификация, а предпочтения пользователей StackOverflow.


> в предположении что значение числовое.
> 
> в любом случае варианта выводить ничего нет -- для чисел будет не
> валидный json, а все числа пихать в виде строк в "" -- как-то тоже
> кажется неправильным.


Дело в том, что в nginx все переменные строковые.  Они в первую очередь
предназначены для использования в конфигурации, а там нет отличий никаких
между числом и строкой.  Конфигурация - это не ЯП с типизацией, а набор
токенов из текстового файла, которые затем интерпретируются в зависимости
от директивы, в которой используются.

Поэтому решение о том, как использовать каждую переменную в JSON: в виде
строки, заворачивая в кавычки, или в виде числа, не заворачивая - отдано
на откуп пользователю.  Если пользователь решает использовать переменную
не в виде строки, то он должен позаботиться о том, чтобы она всегда
содержала в этом случае корректное значение с точки зрения выбранного
им варианта применения.

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

Re: tcpdump tls

2020-07-26 Пенетрантность Илья Шипицин
Если хочется именно pcap, посмотрите, тут на форуме был вопрос про слив
ключей шифрования в ФСБ. Можно подгрузить библиотеку, которая сохранит
ключи в файл

On Sun, Jul 26, 2020, 10:47 PM Slawa Olhovchenkov  wrote:

> А что-как можно сделать что бы расшифровать https сессию в .pcap?
>
> Нет, не сорм. Просто клиентский браузер какую-то фигню странную пишет,
> типа
>
> 
> Server's response
>
> Full response:
> 0 Missing status code HTTP/1.1
> =
>
>
> и я хочу своими глазами увидеть что конкретно ему отправилось и что
> именно пришло.
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: tcpdump tls

2020-07-26 Пенетрантность Илья Шипицин
Возможно проще fiddler на стороне браузера

On Sun, Jul 26, 2020, 10:47 PM Slawa Olhovchenkov  wrote:

> А что-как можно сделать что бы расшифровать https сессию в .pcap?
>
> Нет, не сорм. Просто клиентский браузер какую-то фигню странную пишет,
> типа
>
> 
> Server's response
>
> Full response:
> 0 Missing status code HTTP/1.1
> =
>
>
> и я хочу своими глазами увидеть что конкретно ему отправилось и что
> именно пришло.
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: tcpdump tls

2020-07-26 Пенетрантность Slawa Olhovchenkov
On Sun, Jul 26, 2020 at 08:58:00PM +0300, Daniel Podolsky wrote:

> только на спецом сконфигурированных ciphers. но, вообще-то, это гуглится.

в пору персонализированного гугла что угодно может оказаться
неглибельным

PS: да, я попытался погуглить. возможно неправильно запрос задал.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: tcpdump tls

2020-07-26 Пенетрантность Daniel Podolsky
только на спецом сконфигурированных ciphers. но, вообще-то, это гуглится.

On Sun, 26 Jul 2020 at 20:47, Slawa Olhovchenkov  wrote:
>
> А что-как можно сделать что бы расшифровать https сессию в .pcap?
>
> Нет, не сорм. Просто клиентский браузер какую-то фигню странную пишет,
> типа
>
> 
> Server's response
>
> Full response:
> 0 Missing status code HTTP/1.1
> =
>
>
> и я хочу своими глазами увидеть что конкретно ему отправилось и что
> именно пришло.
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

tcpdump tls

2020-07-26 Пенетрантность Slawa Olhovchenkov
А что-как можно сделать что бы расшифровать https сессию в .pcap?

Нет, не сорм. Просто клиентский браузер какую-то фигню странную пишет,
типа


Server's response

Full response:
0 Missing status code HTTP/1.1
=


и я хочу своими глазами увидеть что конкретно ему отправилось и что
именно пришло.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: json log и "экранирование" неопределенных переменных

2020-07-26 Пенетрантность Slawa Olhovchenkov
On Sun, Jul 26, 2020 at 10:07:23PM +0500, Илья Шипицин wrote:

> вс, 26 июл. 2020 г. в 22:05, Slawa Olhovchenkov :
> 
> > On Sun, Jul 26, 2020 at 09:52:35PM +0500, Илья Шипицин wrote:
> >
> > > > https://stackoverflow.com/questions/21120999/representing-null-in-json
> > > >
> > > > в предположении что значение числовое.
> > > >
> > >
> > > а как правильно ескейпить "0.001, - , 0.002"
> >
> 
> первый бекенд вернул 503
> второй сбросил tcp
> третий вернул 200

а, ок.
ну в общем я вариант сказал.

а может даже так [0.001,null,0.002]

> и у меня proxy_next_upstream http_503
> 
> 
> >
> > да, хороший вопрос
> > только почему у нас два ответа?
> >
> > но я думаю что если одно число -- то как число
> > если ничего -- не было обращений к апстирму -- null
> > иначе строка в кавычках.
> > ___
> > nginx-ru mailing list
> > nginx-ru@nginx.org
> > http://mailman.nginx.org/mailman/listinfo/nginx-ru

> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: json log и "экранирование" неопределенных переменных

2020-07-26 Пенетрантность Илья Шипицин
вс, 26 июл. 2020 г. в 22:05, Slawa Olhovchenkov :

> On Sun, Jul 26, 2020 at 09:52:35PM +0500, Илья Шипицин wrote:
>
> > > https://stackoverflow.com/questions/21120999/representing-null-in-json
> > >
> > > в предположении что значение числовое.
> > >
> >
> > а как правильно ескейпить "0.001, - , 0.002"
>

первый бекенд вернул 503
второй сбросил tcp
третий вернул 200

и у меня proxy_next_upstream http_503


>
> да, хороший вопрос
> только почему у нас два ответа?
>
> но я думаю что если одно число -- то как число
> если ничего -- не было обращений к апстирму -- null
> иначе строка в кавычках.
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: json log и "экранирование" неопределенных переменных

2020-07-26 Пенетрантность Slawa Olhovchenkov
On Sun, Jul 26, 2020 at 09:52:35PM +0500, Илья Шипицин wrote:

> > https://stackoverflow.com/questions/21120999/representing-null-in-json
> >
> > в предположении что значение числовое.
> >
> 
> а как правильно ескейпить "0.001, - , 0.002"

да, хороший вопрос
только почему у нас два ответа?

но я думаю что если одно число -- то как число
если ничего -- не было обращений к апстирму -- null
иначе строка в кавычках.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: json log и "экранирование" неопределенных переменных

2020-07-26 Пенетрантность Илья Шипицин
вс, 26 июл. 2020 г. в 21:43, Slawa Olhovchenkov :

> On Sun, Jul 26, 2020 at 07:29:04PM +0300, Валентин Бартенев wrote:
>
> > On Sunday, 26 July 2020 19:15:20 MSK Slawa Olhovchenkov wrote:
> > > On Sun, Jul 26, 2020 at 05:55:57PM +0300, Sergey Kandaurov wrote:
> > >
> > > >
> > > > > On 24 Jul 2020, at 14:13, Slawa Olhovchenkov 
> wrote:
> > > > >
> > > > > Внезапно выяснилось что если пишем в json формате (ну ок,
> > > > > экранирование json), то отсутсвующе числовые значения все ломают.
> > > > > они идут как "-". может в этом случае их выводить как null?
> > > >
> > > > Такая подстановка используется в эскейпинге по умолчанию,
> > > > если значение переменной не найдено.  В других форматах
> > > > эскейпинга значение не выводится, подробнее здесь:
> > > > http://nginx.org/r/log_format/ru
> > >
> > > ну по спецификации json отстувиие должно кодироваться как null, не?
> >
> > Это где такое написано?
>
> https://stackoverflow.com/questions/21120999/representing-null-in-json
>
> в предположении что значение числовое.
>

а как правильно ескейпить "0.001, - , 0.002"


>
> в любом случае варианта выводить ничего нет -- для чисел будет не
> валидный json, а все числа пихать в виде строк в "" -- как-то тоже
> кажется неправильным.
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: json log и "экранирование" неопределенных переменных

2020-07-26 Пенетрантность Slawa Olhovchenkov
On Sun, Jul 26, 2020 at 07:29:04PM +0300, Валентин Бартенев wrote:

> On Sunday, 26 July 2020 19:15:20 MSK Slawa Olhovchenkov wrote:
> > On Sun, Jul 26, 2020 at 05:55:57PM +0300, Sergey Kandaurov wrote:
> > 
> > > 
> > > > On 24 Jul 2020, at 14:13, Slawa Olhovchenkov  wrote:
> > > > 
> > > > Внезапно выяснилось что если пишем в json формате (ну ок,
> > > > экранирование json), то отсутсвующе числовые значения все ломают.
> > > > они идут как "-". может в этом случае их выводить как null?
> > > 
> > > Такая подстановка используется в эскейпинге по умолчанию,
> > > если значение переменной не найдено.  В других форматах
> > > эскейпинга значение не выводится, подробнее здесь:
> > > http://nginx.org/r/log_format/ru
> > 
> > ну по спецификации json отстувиие должно кодироваться как null, не?
> 
> Это где такое написано? 

https://stackoverflow.com/questions/21120999/representing-null-in-json

в предположении что значение числовое.

в любом случае варианта выводить ничего нет -- для чисел будет не
валидный json, а все числа пихать в виде строк в "" -- как-то тоже
кажется неправильным.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: json log и "экранирование" неопределенных переменных

2020-07-26 Пенетрантность Валентин Бартенев
On Sunday, 26 July 2020 19:15:20 MSK Slawa Olhovchenkov wrote:
> On Sun, Jul 26, 2020 at 05:55:57PM +0300, Sergey Kandaurov wrote:
> 
> > 
> > > On 24 Jul 2020, at 14:13, Slawa Olhovchenkov  wrote:
> > > 
> > > Внезапно выяснилось что если пишем в json формате (ну ок,
> > > экранирование json), то отсутсвующе числовые значения все ломают.
> > > они идут как "-". может в этом случае их выводить как null?
> > 
> > Такая подстановка используется в эскейпинге по умолчанию,
> > если значение переменной не найдено.  В других форматах
> > эскейпинга значение не выводится, подробнее здесь:
> > http://nginx.org/r/log_format/ru
> 
> ну по спецификации json отстувиие должно кодироваться как null, не?

Это где такое написано? 

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

Re: json log и "экранирование" неопределенных переменных

2020-07-26 Пенетрантность Slawa Olhovchenkov
On Sun, Jul 26, 2020 at 05:55:57PM +0300, Sergey Kandaurov wrote:

> 
> > On 24 Jul 2020, at 14:13, Slawa Olhovchenkov  wrote:
> > 
> > Внезапно выяснилось что если пишем в json формате (ну ок,
> > экранирование json), то отсутсвующе числовые значения все ломают.
> > они идут как "-". может в этом случае их выводить как null?
> 
> Такая подстановка используется в эскейпинге по умолчанию,
> если значение переменной не найдено.  В других форматах
> эскейпинга значение не выводится, подробнее здесь:
> http://nginx.org/r/log_format/ru

ну по спецификации json отстувиие должно кодироваться как null, не?
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: json log и "экранирование" неопределенных переменных

2020-07-26 Пенетрантность Sergey Kandaurov

> On 24 Jul 2020, at 14:13, Slawa Olhovchenkov  wrote:
> 
> Внезапно выяснилось что если пишем в json формате (ну ок,
> экранирование json), то отсутсвующе числовые значения все ломают.
> они идут как "-". может в этом случае их выводить как null?

Такая подстановка используется в эскейпинге по умолчанию,
если значение переменной не найдено.  В других форматах
эскейпинга значение не выводится, подробнее здесь:
http://nginx.org/r/log_format/ru

-- 
Sergey Kandaurov

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Возможно ли остановить выполнение правил внутри location/выйти из location

2020-07-26 Пенетрантность Сергей Олегович
Можно в if засунуть rewrite ... last; Тогда после выполнения условия будет 
совершён выход из этого location и поиск нового в соответствии с 
изменениями. Но мне сходу видятся проблемы, т.к. изначально логика 
построена неверно.


Роман Буренков  26 июля 2020 г. 12:11:41 написал:
Я использую gitlab 12 СE ( 12.9.2 (ac5568eb5d8) ) и nginx из поставки 
gitlab (nginx 1.16.1 sha256:f11c2a6d )


кусок моего location с правилами:
location /test/lfs_lock_test.git/info/lfs/locks{ if ( $args ~ 
"lockservice=true" ) { return 404; } rewrite ^/test/lfs_lock_test.git/(.*) 
/$1 break; proxy_pass https://localhost:5002; access_log 
/var/log/gitlab/nginx/lfs_lock_access.log gitlab_access; error_log 
/var/log/gitlab/nginx/lfs_lock_error.log debug;

}
я хочу обрабатывать все запросы на ^.*.git/info/lfs/locks внутри location,
только если там не содержится lockservice=true в URI, в это случае,
просто выйти из location ( без 404 ) ,т.к. в файле, который я правлю
( /var/opt/gitlab/nginx/conf/gitlab-http.conf ) есть в т.ч. и такое:
location / { proxy_cache off; proxy_pass http://gitlab-workhorse; }
т.е. если есть lockservice=true в URI, то не делать proxy_pass и в принципе 
не применять правила из моего location


___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru


___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Возможно ли остановить выполнение правил внутри location/выйти из location

2020-07-26 Пенетрантность Роман Буренков
Я использую gitlab 12 СE ( 12.9.2 (ac5568eb5d8) ) и nginx из поставки
gitlab (nginx 1.16.1 sha256:f11c2a6d )

кусок моего location с правилами:

location /test/lfs_lock_test.git/info/lfs/locks{
 if ( $args ~ "lockservice=true" ) {
  return 404;
  }
 rewrite ^/test/lfs_lock_test.git/(.*) /$1 break;
 proxy_pass https://localhost:5002;
 access_log  /var/log/gitlab/nginx/lfs_lock_access.log gitlab_access;
 error_log   /var/log/gitlab/nginx/lfs_lock_error.log debug;
}

я хочу обрабатывать все запросы на  ^.*.git/info/lfs/locks внутри location,
только если там не содержится lockservice=true в URI, в это случае,
просто выйти из location ( без 404 ) ,т.к. в файле, который я правлю
( /var/opt/gitlab/nginx/conf/gitlab-http.conf ) есть в т.ч. и такое:

  location / {
proxy_cache off;
proxy_pass  http://gitlab-workhorse;
  }

т.е. если есть  lockservice=true в URI, то не делать proxy_pass и в
принципе не применять правила из моего location
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru