The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Новая атака на системы фронтэнд-бэкенд, позволяющая вклиниться в запросы"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Новая атака на системы фронтэнд-бэкенд, позволяющая вклиниться в запросы"  +/
Сообщение от opennews (??), 07-Авг-21, 12:32 
Web-системы, в которых фронтэнд принимает соединения по HTTP/2 и передаёт бэкенду по HTTP/1.1, оказались подвержены новому варианту  атаки "HTTP Request Smuggling", позволяющей через отправку специально оформленных клиентских запросов вклиниваться в содержимое  запросов других пользователей, обрабатываемых в том же потоке между фронтэндом и бэкендом. Атака может быть использована для подстановки вредоносного JavaScript-кода в сеанс с легитимным сайтом, обхода систем ограничения доступа и перехвата параметров аутентификации...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=55601

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от Аноним (1), 07-Авг-21, 12:32   –11 +/
Ой, ну надо же, http взломали, как удивительно. (Нет.)
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #28, #33

2. Сообщение от Anonymouse (?), 07-Авг-21, 12:36   +11 +/
Http на rust надо переписать очевидно же.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #4, #17

3. Сообщение от Онаним (?), 07-Авг-21, 12:38   +1 +/
Уродство HTTP/2 таки выстрелило.
То ли ещё будет с HTTP/много, которые вообще не HTTP.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #11, #88

4. Сообщение от OnTheEdgeemail (ok), 07-Авг-21, 12:40   +7 +/
как же вы затрахали со своими шуточками, которые заходят через раз местному хомячью
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #16

5. Сообщение от Аноним (5), 07-Авг-21, 12:42   –1 +/
Т.е. они одним сплошным потоком байтов слали подряд разные запросы а потом надеялись что смогут разбить их обратно на части?
Они похоже не читали статей где говорится о важности выбора разделителя и что самым надёжным будет разделять записи через набор символов !йух! .
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #6

6. Сообщение от пох. (?), 07-Авг-21, 12:49   –2 +/
они читали много статей где п-делось о страшных и ужастных ЗАДЕРЖКАХ при открытии tcp сессии (особенно в рамках одного и того же локалхоста).
И героически поебдили ненужную проблему.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #35

7. Сообщение от Аноним (7), 07-Авг-21, 12:52   +/
Полное вымирание сайтов http - вопрос времени
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #91

8. Сообщение от Аноним (8), 07-Авг-21, 12:57   –4 +/
Слишком много букав!
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #23

9. Сообщение от Онаним (?), 07-Авг-21, 12:59   +/
Радует пока одно: у меня на фронтах немолодёжный haproxy, новый парсер которого по-человечески разбирает и перебирает запросы перед отдачей в бэкенды. В старом парсере до 2.0.6 были проблемы, ну так старый парсер для h2 в здравом уме юзать было сложно.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #10, #31, #156

10. Сообщение от пох. (?), 07-Авг-21, 13:04   –1 +/
нет ножек (ненужно/2) - нет проблемы.

P.S. обратить внимание на нашествие в комменты м-ков "экспертов" борцунов с http.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #12, #100

11. Сообщение от Аноним (11), 07-Авг-21, 13:08   +9 +/
Так-то выстрелило уродство HTTP1, если почитать новость.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #14, #25, #108

12. Сообщение от Онаним (?), 07-Авг-21, 13:13   +/
Я бы им вместо http sip с rtp посоветовал, но жалко бедняжек.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10

13. Сообщение от Отражение луны (ok), 07-Авг-21, 13:14   +1 +/
Оверинженеринг в действии
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #26, #78

14. Сообщение от Онаним (?), 07-Авг-21, 13:15   +1 +/
Выстрелило уродство трансляции полубинарного уродства SPDY в HTTP.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #22

15. Сообщение от Аноним (15), 07-Авг-21, 13:19   +1 +/
Ну так нгингс подвержен или нет? Где исправления?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #18

16. Сообщение от Аноним (16), 07-Авг-21, 13:34   +4 +/
Согласен, это уже похоже на шутеечки от Вася с 6 класса из школы интерната Подольского района где такие же... Ну вы поняли.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #19

17. Сообщение от Admin (??), 07-Авг-21, 13:40   +1 +/
Тебя бы тоже не мешало на Rust переписать
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

18. Сообщение от edo (ok), 07-Авг-21, 13:41   +1 +/
Если я правильно прочитал changelog к 1.21.1, то это как раз оно:
http://nginx.org/en/CHANGES
Немного смущает, что  эта версия вышла месяц назад (впрочем, CVE-2021-21295 вообще от марта, так что известно об этой уязвимости давно)


Тут просто написано «NGINX is not affected by this security exposure», без указания конкретных версий:
https://support.f5.com/csp/article/K97045220

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #55

19. Сообщение от Аноним (19), 07-Авг-21, 13:49   –5 +/
При чем тут шутеечки? Rust - современный язык программирования с безопасным управлением памятью, мультитаймингом, гиперинжинирингом и овертрейдингом. Скоро все на ruste перепишут, вот увидишь
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16

22. Сообщение от Аноним (22), 07-Авг-21, 14:53   +/
О да, лучше нормальный plain-text HTTP, от которого, правда, все отказались в пользу HTTPS, в котором из текста только вызов метода CONNECT.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #30, #39, #43

23. Сообщение от Аноним (22), 07-Авг-21, 14:55   +/
Погодите, через недельку для специально для олдовых админов выйдет хайпово-клиповая версия на тиктоке.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8

24. Сообщение от Аноним (24), 07-Авг-21, 15:52   +/
Теперь все будут топить за "закопать" http и перейти на websocket?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #77

25. Сообщение от all_glory_to_the_hypnotoad (ok), 07-Авг-21, 17:03   +1 +/
Это рукожопость разработчиков прокси ибо такие атаки очевидны и им сразу же нужно было уделять должное внимание.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #40

26. Сообщение от all_glory_to_the_hypnotoad (ok), 07-Авг-21, 17:06   +2 +/
Это как раз недоинженеринг, т.е. когда осилили работу с простым протоколом HTTP/2 и не осилили бинарно более сложный HTTP/1.x
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #93

27. Сообщение от Kuromi (ok), 07-Авг-21, 17:35   +3 +/
Не волйнутесь, сейчас Гугл быстренько придумает HTTP3...ой, нет, наверное уже HTTP4.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #29, #56

28. Сообщение от Аноним (28), 07-Авг-21, 18:05   +5 +/
> Атака может быть использована для подстановки вредоносного JavaScript-кода

Ой, ну надо же отключать JS.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #83

29. Сообщение от Разбойник (?), 07-Авг-21, 18:37   +/
Хуавей уже замену TCP/IP придумал. Этакий зомбоящик получается.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27 Ответы: #36, #50

30. Сообщение от Michael Shigorinemail (ok), 07-Авг-21, 19:13   –10 +/
Да-да-да, стройными колоннами побежали и отказались, никто не "стимулировал".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22 Ответы: #87

31. Сообщение от Alexey Chernyavskiyemail (?), 07-Авг-21, 19:14   +/
Переходи на Traefik
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #37

33. Сообщение от хакер (?), 07-Авг-21, 19:57   –7 +/
интересно кто самый дырявый - си или js
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #42

35. Сообщение от kissmyass (?), 07-Авг-21, 20:14   +/
так разве для HTTP 1.0 не открывается новое соединение на каждый запрос?

или это особенность всякие reverse-proxy?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #38

36. Сообщение от kissmyass (?), 07-Авг-21, 20:21   +/
мертворожденная шляпа
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29 Ответы: #49

37. Сообщение от Онаним (?), 07-Авг-21, 20:40   +2 +/
Пасибо, я столько смузи в одно рыло не сожру.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31 Ответы: #48

38. Сообщение от Онаним (?), 07-Авг-21, 20:43   +/
Открытие соединения по сравнению с ожиданием ответа от серверов - копеечная операция, на самом деле. Ну и 1.0 давно почит, в 1.1 в пределах одного соединения может быть несколько операций.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35 Ответы: #47, #64, #90

39. Сообщение от Онаним (?), 07-Авг-21, 20:43   +/
Внутри хытыпысы внезапно всё тот же гипертекстовый фидонет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22 Ответы: #53

40. Сообщение от Онаним (?), 07-Авг-21, 20:44   +/
Это рукожопость разработчиков бинарного протокола, которые решили, что те же CRLF в хедерах теперь новая нормальность. С фига бы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25 Ответы: #41

41. Сообщение от Онаним (?), 07-Авг-21, 20:46   +/
(упреждая: угу, бинарному протоколу фиолетово. но забыли о сути HTTP - передача собственно текстовых сообщений, в которых переводы строк - неизбежное зло. за бинарным протоколом ещё серверы этих текстовых сообщений сидят, которым тот же CRLF внутри одного хедера тоже не особо спёрся)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #89

42. Сообщение от ананим.orig (?), 07-Авг-21, 20:52   +12 +/
прокладку не рассматриваешь?
а ник у тебя - просто "лэйбла" такая?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33 Ответы: #71

43. Сообщение от ананим.orig (?), 07-Авг-21, 20:56   +/
> plain-text HTTP, от которого, правда, все отказались в пользу HTTPS

всех отказали тогда уж.

не переживай, будет и 3-я, и 4-я волна.
это же удобно.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22

44. Сообщение от Alex_Kemail (??), 07-Авг-21, 21:16   –3 +/
KeepAlive Off на бэкенде спасет отца русской демократии :)
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #51

47. Сообщение от kissmyass (?), 07-Авг-21, 21:56   +/
> Открытие соединения по сравнению с ожиданием ответа от серверов - копеечная операция,
> на самом деле. Ну и 1.0 давно почит, в 1.1 в
> пределах одного соединения может быть несколько операций.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38 Ответы: #63

48. Сообщение от онанимус (?), 07-Авг-21, 23:01   +1 +/
тогда переходи на Envoy
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #52, #61, #62, #92

49. Сообщение от онанимус (?), 07-Авг-21, 23:03   +1 +/
это тебе, живущему в свободной стране, так кажется.
а в Китае взлетит.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #76

50. Сообщение от Kuromi (ok), 07-Авг-21, 23:25   +1 +/
> Хуавей уже замену TCP/IP придумал. Этакий зомбоящик получается.

Так же как они "заменили" Андроид?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29

51. Сообщение от Анончик (?), 07-Авг-21, 23:38   +/
Да, Жа спасет, можешь спать спокойно =)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44

52. Сообщение от Аноним (22), 08-Авг-21, 01:20   +/
Не, там думать надо.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48

53. Сообщение от Аноним (22), 08-Авг-21, 01:22   +/
То есть, если внутри бинарного кода буквы, то он уже не бинарный? Ну тогда и HTTP/2 тоже небинарный (аки гендер у гражданина свободной страны).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39 Ответы: #59, #60

54. Сообщение от vitalif (ok), 08-Авг-21, 02:04   –1 +/
HTTP2 нинужно
Ответить | Правка | Наверх | Cообщить модератору

55. Сообщение от Sage (??), 08-Авг-21, 03:32   +2 +/
Проверил на Nginx 1.20 (не включающем правки от 6 июля): заголовок Transfer-Encoding на сервер, указанный в proxy_pass, не отправляется вообще (до nginx доходит, а дальше - не уходит), Content-Length устанавливается в нужное значение, исходя из реального объёма переданных данных. Попытки вклинить перенос на новую строку внутри заголовка приводят к закрытию соединения. Попытки дважды использовать Content-Length - к ошибке 400. Получается, добавленные в 1.21.1 исправления - это ради перестраховки.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18 Ответы: #57

56. Сообщение от Anonn (?), 08-Авг-21, 03:43   +/
Такими темпами скоро перейдут на 6-недельные релизы, синхронно с Хромом. Циферки будут меняться как в одометре.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27 Ответы: #58

57. Сообщение от edo (ok), 08-Авг-21, 04:46   +/
чем генерировали запросы? curl'ом у меня не всё получается
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #55 Ответы: #67

58. Сообщение от Аноним (58), 08-Авг-21, 07:51   +/
Вообще-то у них уже 4-недельный цикл
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #56

59. Сообщение от Онаним (?), 08-Авг-21, 09:16   +/
Ты не понял.
SSL при обработке 1:1 разворачивается до исходного протокола, являясь только трансформацией.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53 Ответы: #81, #102

60. Сообщение от Онаним (?), 08-Авг-21, 09:17   +/
Для преобразования HTTP/2 же в HTTP/1 по сути требуется полная реконструкция, простой трансформации нет - и как раз это и вызывает обсуждаемую проблему.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53 Ответы: #72

61. Сообщение от Онаним (?), 08-Авг-21, 09:22   +/
Когда смузихлёбы добираются до C - у них выходит ещё хуже, чем если бы они на своих гошечках писали.

Ну и вообще, какой смысл на что-то переходить, если haproxy отлично справляется со своей задачей? Модность и молодёжность? Всякие борингэсэсэли, люфты и прочее нечитаемое? См. выше - очень радует, что не модно, и не молодёжно.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48 Ответы: #82

62. Сообщение от Онаним (?), 08-Авг-21, 09:24   +1 +/
Абсолютно угрёбищный конфиг умноженный на абсолютно угрёбищную документацию - да, это то, о чём я всю жизнь мечтал. По ним можно примерно предположить, что там внутри в архитектуре этого барбершопа.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48 Ответы: #75, #85

63. Сообщение от Онаним (?), 08-Авг-21, 09:49   +/
Многие проморгали, потому что гугели свой SPDY в виде H2 запихивали в индустрию ломиком, не оставляя времени на масштабное тестирование. Следующая итерация неадекватизма под названием QUIC - на подходе, и её пытаются впихнуть ещё быстрее, чем H2. На деле же оба по сути не нужны, keepalive от 1.1 вполне достаточно. За спидами-кваками лежит только одно: желание сократить число открытых портов на фронтах у обленившихся.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47 Ответы: #73

64. Сообщение от пох. (?), 08-Авг-21, 11:05   –1 +/
причем и то и другое копеечные операции по сравнению с ожиданием модного-современного gpu рендеринга и тонны скриптов.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38 Ответы: #65, #66

65. Сообщение от Онаним (?), 08-Авг-21, 11:15   +/
Не, ну там основной идеей вмазывалось "мыжыможым статический коньтент подгрузить асинхронно пока сервер кушает". А второй коннект открыть в походе за статическим контентом - это уже всё, немодномолодёжно, обязательно надо ещё что-то внутри протокола херовертить.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #64 Ответы: #69

66. Сообщение от Онаним (?), 08-Авг-21, 11:16   +/
Самое же прекрасное, что у этих же почитателей смузи в итоге статический коньтент ныне размазан по десятку CDN'ов, и одним коннектом они так и так не обходятся.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #64 Ответы: #68

67. Сообщение от Sage (??), 08-Авг-21, 11:19   +/
На скорую руку отредактировал бинарник курла и libcurl-4.dll, заменив там первую букву во всех вхождениях строки Transfer-Encoding, дабы этот заголовок в нём не имел специального значения и отправлялся на сервер, как и остальные пользовательские заголовки. На придумывание чего-то хитрого не стал тратить время, но через Wireshark убедился, что нужные заголовки в запросах к nginx на месте, а от nginx уже нет (curl запускал с переменной окружения SSLKEYLOGFILE).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57 Ответы: #140

68. Сообщение от пох. (?), 08-Авг-21, 11:24   –1 +/
и вот там уже задержки вполне видны, поскольку это новая tls сессия на каждый jquery.js с каждого особенного cdn
(хотя, разумеется, они ничто по сравнению с тем что начнется, когда оно его наконец-то скачает и запустит)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #66

69. Сообщение от пох. (?), 08-Авг-21, 11:26   –1 +/
> А второй коннект открыть

ЗАДЕРЖКИ!!!! ("уминядвепалоски!")

(то что они миллисекундные на фоне _секунд_ как минимум на собственно скачивание - смузижорам неведомо - у них внутри гугля везде уже 100G прямо до ноута обезьянки-разработчика)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65 Ответы: #132

70. Сообщение от Аноним (70), 08-Авг-21, 11:29   –1 +/
javascript макак как обычно взламывают даже без использования уязвимостей неправильной работы с памятью.
Несомненно у них ошибка в днк
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #94

71. Сообщение от And (??), 08-Авг-21, 11:53   +/
Скорее всего проблема в помойке node репо библиотек для JS и культуре коммерческой разработки.

За что чмырят JS, это часто даёт похожее на сабж: дописали "клёвую" дублирующую функциональность не имея опыта и желания. Дубляж функциональности и разделение/трансформирование старого-нового - хороший и известный признак для поиска уязвимости.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42 Ответы: #86

72. Сообщение от And (??), 08-Авг-21, 11:56   +1 +/
Именно. А разрабы попытались таки не делать нормально и попробовали частично 2 обратно превратить в 1.1

Типа время экономят, что ли... Для скорости.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #60 Ответы: #74

73. Сообщение от anonymous (??), 08-Авг-21, 11:57   +/
Дело тут не в открытых сессиях (сессии надо и в QUIC отслеживать, то есть это не даёт экономии). Дело именно в задержках. И да, QUIC действительно позволяет сократить задержки. Особенно у всяких мобильных пользователей.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #63

74. Сообщение от Онаним (?), 08-Авг-21, 12:00   +/
Ну да, казалось бы должна была быть просто трансформация, потому что "разработано с учётом мнения ведущих собаководов". А на деле разработано без обратной совместимости, и поэтому особенностей исходного протокола не учитывает совсем.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #72

75. Сообщение от anonymous (??), 08-Авг-21, 12:02   +/
Когда-нибудь вы уйдёте в High Load и в такой, где нужны submillisecond ответы от сервиса, и тут вы поймёте почему haproxy вам уже не хватает. И почему TCP вам не подходит by design.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62 Ответы: #79, #80, #84

76. Сообщение от Онаним (?), 08-Авг-21, 12:02   +1 +/
Ну так там цели иные, нежели связность и удобство.
А в условиях адекватных целей не взлетит.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #49

77. Сообщение от anonymous (??), 08-Авг-21, 12:03   –1 +/
WebSocket работает поверх HTTP
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24

78. Сообщение от And (??), 08-Авг-21, 12:03   +/
> Оверинженеринг в действии

Больше похоже на идиотизм: тащить части старого протокола в новый протокол. Нарушили инкапсуляцию и огребли. О чём олды даааавно уже понимали.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #95

79. Сообщение от Онаним (?), 08-Авг-21, 12:12   +/
Не жрите больше столько, умоляю. High Load - это не субмиллисекундные ответы, далеко нет.
И если у вас для нормальной работы сервиса требуются субмиллисекундные ответы - я бы уже посоветовал начать руковыпрямительную машинку собирать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #75

80. Сообщение от Онаним (?), 08-Авг-21, 12:24   +3 +/
Но да, раз уж мы заговорили о хайлоудах - я прекрасно знаю как оно у смузихлёбов происходит.
Сначала плодятся модные микросервисы в докерах, и оно даже как-то работает в продакшне на хайлоуде внезапно. Стильно, модно, молодёжно.
По мере развития сервиса этих микросервисов становится over 9000, и вот тут выясняется, что нам теперь на один запрос надо их подёргать полсотни минимум, причём часто последовательно. А поскольку сеть при такой растопырке начинает роль играть, начинается вытьё про необходимость субмиллисекундных ответов, tcp не tcp, и прочий истероз. Это не хайлоуд, это лоумаржин, обильно сдобренный неумением видеть процессы далее одной сущности (особенно для снежинок характерно ныне).

И нет понимания того, что юзеру без разницы, что у вас там в колхозе - ему важно, чтобы ему за его 100 мс ожидания, на которые он готов, ответ пришёл, а что вы там внутри дёргаете - сугубо фиолетово.

Рецепт в данном случае прост, но он покатит только в случае, если у вас не лоумаржин, а нормальное рентабельное. Смузихлёбам оставляется смузи (да и самих их остаётся половина), на критичные места берутся (дорогие) спецы, которые умеют вместо 100500 обмылков собрать полтора нормальных масштабируемых монолита, и их поддерживать. Ворочаться будет тоже не валко, но куда шустрее, чем подёргать сотню микрообмылков.

Всё это ещё дополнительно умножается на то, что ваш тезис про субмс работает только пока у вас георазнесения нет. Как только появляется георазнесение - забудьте про субмс, там от сервиса до сервиса будет десяток мс, и блокирующая синхронизация.

Короче, субмиллисекундные ответы оставьте жёсткому реалтайму и телеметрии - там да, это очень суровая тема, и действительно с tcp бывают проблемы. Но это не Web, и даже не около. А там, про что вы вещаете - проблема совершенно другого характера.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #75 Ответы: #97, #122

81. Сообщение от Аноним (22), 08-Авг-21, 12:27   +/
То есть, если я в SNI напишу левое имя хоста, это никак не повлияет на работу HTTP?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #59 Ответы: #105

82. Сообщение от Аноним (22), 08-Авг-21, 12:30   +/
> haproxy отлично справляется со своей задачей

Разработчики haproxy с вами не согласятся, судя по тому, что они пилят dataplaneapi (попытка сделать аналог envoy из haproxy, обмазанного дендрофeкальными материалами).

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #61

83. Сообщение от Аноним (-), 08-Авг-21, 12:32   +2 +/
Идея хорошая, но вебмакаки понаделали js-only крапа. И кстати это не поможет от приколов когда бэкэнд сливает вам ответ для совсем другого юзера, например. Так что кто-то может стырить кучу инфо о посторонних юзерах и их запросах. Судя по описанию - при удачном раскладе могут даже номера чужих кредиток или какие-нибудь секретные коды присылать на раз.

p.s. LOL! LOL! LOL! LOL! TROLL! TROLL! TROLL! TROLL!

Исследователей с их рыготой самих в процессе поимели, как и пентестеров с этим нечто :)

We have updated Burp Suite's embedded browser to fix a clickjacking-based remote code execution bug in Burp Suite 

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28

84. Сообщение от Аноним (22), 08-Авг-21, 12:32   +/
>  Когда-нибудь вы уйдёте в High Load и в такой, где нужны submillisecond ответы от сервиса, и тут вы поймёте почему haproxy вам уже не хватает. И почему TCP вам не подходит by design.

Вот только envoy тут не при чем. Он - в основном про возможность конфигурирования в runtime. Пожалуй, один из двух прокси-серверов, которые это реально умеют (второй - caddy).

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #75 Ответы: #98

85. Сообщение от Аноним (22), 08-Авг-21, 12:35   +/
> Абсолютно угрёбищный конфиг умноженный на абсолютно угрёбищную документацию

Могли бы и не повторять, выше же написано

> Не, там думать надо.

Если что-то по своей сложности превосходит табуретку и не может быть осмыслено одной извилиной - всё, атас, "угребищность" и другие нехорошие слова.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62 Ответы: #96, #99

86. Сообщение от Аноним (-), 08-Авг-21, 12:37   +1 +/
А может быть проблема в том что не надо код писать ж@пой, качая половину интернета, от хрен знает кого, писаного хрен знает как? А еще неплохо бы использовать мозг при написании программ.

Это касается вообще любого ЯП. И даже как видим не только яп. Упомянутая проблема на ЯП не завязана и возникает из-за гейтования протоколов. Свойства протоколов довольно разные, и на их стыке случается весьма интересное взаимодействие, когда первые понимают вторых не так как задумано. Это очень старый класс багов, не очень известный, но потенциально очень мощный по эффектам. Подобный класс багов позволяет обмануть системы на тему того с кем они имеют дело и левай Вася может быть на раз принят за админа, например.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #71

87. Сообщение от Аноним (-), 08-Авг-21, 12:39   +/
А кто стимулировал? Серваки заимплементившие фичу и повышение скорости загрузки сайтов? Вот уж зло вселенское.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30 Ответы: #120

88. Сообщение от Аноним (-), 08-Авг-21, 12:44   +3 +/
> Уродство HTTP/2 таки выстрелило.

Вообще-то там текстовость HTTP/1.1 дурят жестко и это проблема HTTP1.

А если тот сайт еще и почитать, да еще используя мозги, можно узнать, что они там оказывается рядом атаковали и чистый HTTP/1.1 похожими методами, вообще без участия HTTP/2. Используя разное понимание фронтом и бэком длины запроса, например. Что в HTTP/1 сделано довольно дурно и дальше кому-то что-то совершенно левое в запрос врезается, потому что бэк уверен что все уже сжевал, а там какая-то добавка, которая может быть принята за новый запрос например, или префикс к нему.

Последнее позволяет пришить совершенно постороннему лоху какой-нибудь интересный редирект на свой сервак, а он какое-нибудь инфо утечет. Или скрипт ему подгрузить. Вариантов много.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #104

89. Сообщение от Аноним (-), 08-Авг-21, 12:45   +2 +/
Для эпичного ламо намекну: там упомянуты варианты этих атак работающие на чистом HTTP/1, который они не первый год практикуют. В случае HTTP/2 они просто попробовали по аналогии - и это прокатило, с превышением.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #41

90. Сообщение от Аноним (-), 08-Авг-21, 12:48   +/
> Открытие соединения по сравнению с ожиданием ответа от серверов - копеечная операция,

Не совсем. Ведет к выделению ресурсов на сокет в операционке, а закретие соединения далеко не мгновенное и при большом количестве запросов сокеты ожидающие закрытия могут основательно подвыжрать лимит числа файлов/сокетов, пригрузить conntrack, если он есть, etc.

> пределах одного соединения может быть несколько операций.

Да, там рядом клевые примеры что с chunked можно делать. И как можно фронты и бэки на-о-бывать. Даже без HTTP2 вообще, чего уж.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38 Ответы: #101, #103

91. Сообщение от Аноним (-), 08-Авг-21, 12:56   +/
> Полное вымирание сайтов http - вопрос времени

Они как умные клавы решили смухлевать и прицепить HTTP/1 бэк малой кровью. При том на этом погорели весьма жирные конторы.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7

92. Сообщение от Аноним (-), 08-Авг-21, 13:12   –2 +/
> тогда переходи на Envoy

Охренеть, плюсовики хайпуют. Явно покусаные гуглем - #include <stdbullshit> и даже, вау, тот укуреный гуглокрап как билдсистема.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48

93. Сообщение от Аноним (-), 08-Авг-21, 13:13   +2 +/
> Это как раз недоинженеринг, т.е. когда осилили работу с простым протоколом HTTP/2
> и не осилили бинарно более сложный HTTP/1.x

HTTP/1 вообще более сложен в проверках и sanity check. В том числе и из-за специальной трактовки символов, что ведет к рискам срыва парсинга.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26

94. Сообщение от Аноним (-), 08-Авг-21, 13:16   +/
А тут, внезапно, не в js макаках проблема.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #70 Ответы: #118, #119

95. Сообщение от Аноним (-), 08-Авг-21, 13:18   +2 +/
> Больше похоже на идиотизм: тащить части старого протокола в новый протокол. Нарушили
> инкапсуляцию и огребли. О чём олды даааавно уже понимали.

Они настолько понимали, что по#%ывали даже и чистый HTTP/1.1 используя разное его понимание на границе между фронтом и бэком :P

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #78 Ответы: #117

96. Сообщение от Аноним (-), 08-Авг-21, 13:21   +1 +/
В новости про атаки - примерно так. Чем сложнее и оверинженернутее нечто, тем больше там будет багов, включая и вулны. Грубо говоря, если вы везде и всюду будете летать исключительно на новой, клевой ракете - ваше прибытие, конечно, будет вызывать фурор. Но не долго. В силу сложности конструкции и малоизученности проблем ваша удача довольно быстро закончится. С другой стороны, сидение на табуретке не грозит развеянием праха в атмосфере...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #85 Ответы: #111, #116

97. Сообщение от Аноним (-), 08-Авг-21, 13:25   +/
У микросервисов есть ряд очевидных плюсов. Как то декомпозиция задачи и перевод оной к некоторому количеству маленьких простых программ. В которых, в лучшем случае будет не так уж много багов. Сложность написания программы, видите ли, растет квадратично от ее размера. Поэтому и багов в большом монолите по идее будет больше, а поддерживать его будет хуже.

Другое дело что хипстеры с жидким мозгом, как ни садитесь, а в программисты не годитесь.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #80 Ответы: #109, #110, #143, #152

98. Сообщение от Онаним (?), 08-Авг-21, 13:26   +/
Да и haproxy в рантайме нормально реконфигурится, если уж честно-то.
Кое-что можно через API, хосты вообще можно в динамике через DNS, а так там reload процессы в усмерть не блокирует даже под тысячами коннектов, разве что phaseout для удалённого бывает длинный.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #84 Ответы: #112

99. Сообщение от Онаним (?), 08-Авг-21, 13:28   +/
Оно именно что не по сложности превосходит, а по угрёбищности.
То есть мнимая сложность, героически себе созданная, чтобы героически гордиться её преодолением.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #85 Ответы: #115

100. Сообщение от Аноним (-), 08-Авг-21, 13:28   +1 +/
> P.S. обратить внимание на нашествие в комменты м-ков "экспертов"

Фига, пох сам себя, затарил, не в бровь а в глаз.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10

101. Сообщение от Онаним (?), 08-Авг-21, 13:31   +/
Ну я как бы в курсе, в практике и 1000 запросов в секунду на динамику - не предел.
Другое дело, что там, где начинается хайлоуд, это всё по уму горизонтально масштабируется, и не надо извращаться с мультиплексированием внутри простого как доска протокола.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #90 Ответы: #133

102. Сообщение от Аноним (102), 08-Авг-21, 13:32   +/
> SSL при обработке 1:1 разворачивается до исходного протокола, являясь только трансформацией.

Не обязательно. См. пример на том сайте как это bitbucket делал, там могли бэку подшить еще сервисные хидеры с данными TLS, типа сертификата клиента и прочих "внутренних" вещей. Кроме того оно умеет всякие вещи типа ALPN. А heartbleed так то показал что оно умеет и много чего еще кроме "только трансформаций".

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #59 Ответы: #106, #107

103. Сообщение от Онаним (?), 08-Авг-21, 13:34   +/
Про chunked пожалуй соглашусь, данное счастье требует некоторой аккуратности.
С другой стороны то, что с H2->H1 происходит, рядом с chunked не лежало и не ползало.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #90 Ответы: #134

104. Сообщение от Онаним (?), 08-Авг-21, 13:36   +/
H2 на бэках конкретно у нас упорно не приживается.
Основная причина - возможность в пределах одного коннекта открыть овердохера произвольных процессов/тредов в динамике, это всё приходится зажимами лимитировать, и честно говоря - проще вынести на фронт, вынеся все лимиты на стык, где потоки уже преобразованы в последовательные на H1.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #88 Ответы: #131

105. Сообщение от Онаним (?), 08-Авг-21, 13:39   +/
Нет. Только на согласование соединения.
HTTP внутри декриптится до исходного в любом случае - БЕЗ изменений.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #81 Ответы: #114

106. Сообщение от Онаним (?), 08-Авг-21, 13:40   +/
Подшивать к TLS можно чего угодно - проблемы ССЗБ шерифа не волнуют.
Важно то, что контент из TLS сдекриптится до исходного неизменного HTTP, SMTP или чего там у вас завёрнуто, т.е. исходный контент TLS не видоизменяет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #102 Ответы: #130

107. Сообщение от Онаним (?), 08-Авг-21, 13:41   +/
А вот из H2 H1 простой трансформацией уже не получить, что и есть источник проблемы - при преобразовании H2 в H1 "есть один нюанс".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #102

108. Сообщение от Онаним (?), 08-Авг-21, 13:43   +/
Если уж совсем просто - H2 не стоило называть HTTP/2, это не HTTP.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11

109. Сообщение от Онаним (?), 08-Авг-21, 13:48   +/
Да, большой монолит сложнее поддерживать.
Но жесть в том, что менять рост сложности на не менее экспоненциальный рост требований к инфраструктуре получится только до определённого предела. А после и tcp не tcp, и всё остальное :)

Баланс где-то посередине, а на старте проекта заметить потенциальную проблему с масштабируемостью по инфраструктуре тем самым хипстерам не просто очень сложно, а близко к импоссибл. Хуже всего то, что свернуться назад требует затрат многократных к изначальной балансировке в сторону группы монолитов.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #97 Ответы: #135

110. Сообщение от Онаним (?), 08-Авг-21, 13:49   +/
(короче я мыслью по древу растёкся, но основная мысль была в том, что овердекомпозиция - зло :D )
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #97 Ответы: #121

111. Сообщение от Онаним (?), 08-Авг-21, 13:51   +/
Примерно да. Оверинжениринг и овердекомпозиция кажутся простыми на этапе первичной сборки, но выстреливают в ногу далее, на развитии и эксплуатации, зачастую потому, что особенности тьмы тьмущею сущностей целиком удержать даже документация уже не помогает. "Не помнишь - запиши. Записал. Забыл, где записал" :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #96 Ответы: #138

112. Сообщение от Аноним (22), 08-Авг-21, 14:10   +/
> Да и haproxy в рантайме нормально реконфигурится, если уж честно-то.

Нет. Достаточно переконфигурировать хотя бы несколько раз в секунду (вполне типичная ситуация в динамичных окружениях), чтобы "дорабатывающие" экземпляры основательно забили память.

> Кое-что можно через API

А нужно не кое-что, а полноценное изменение конфигурации.

> хосты вообще можно в динамике через DNS

Одна А-запись = один server - крайне уныло. Чтобы банально поменять количество бэкендов - нужно лезть в API, причем их количество ограничено заранее созданными слотами.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #98 Ответы: #113, #124, #136

113. Сообщение от Аноним (22), 08-Авг-21, 14:10   +/
s/бэкендов/серверов в бэкенде/, конечно же.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #112 Ответы: #125

114. Сообщение от Аноним (22), 08-Авг-21, 14:13   +/
Получается, SNI на практике ни на что не влияет, а значит - вообще не нужен?
Вот это новость!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #105 Ответы: #123

115. Сообщение от Аноним (22), 08-Авг-21, 14:16   +/
> Оно именно что не по сложности превосходит, а по угрёбищности.

Ну, для вас, похоже, 1+1 - норм, 2+2 - сложно, а 2+3 - угрёбищно.
А уж 5*6 вообще только смузихлёбы могут посчитать, нормальному человеку такое не понадобится, ибо "оверинжиниринг".

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #99 Ответы: #126

116. Сообщение от Аноним (22), 08-Авг-21, 14:21   –1 +/
> С другой стороны, сидение на табуретке не грозит развеянием праха в атмосфере...

Но эволюция, а впоследствии - и прогресс, почему-то упорно порождают все более усложнённые системы. Да, упрощённые тоже порождают, но далеко не все ниши ими закрываются.

Поэтому когда я вижу, когда носитель килограммового шмата нейронов ноет о переусложнённости - хочется посоветовать ему деградировать обратно до амёбы.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #96 Ответы: #137

117. Сообщение от Аноним (147), 08-Авг-21, 14:26   +/
> на границе между фронтом и бэком

Между фронтом и бэком и на ф. и на б. как раз не было знавших и понимавших, или их задавил лидер разработки.

Есть вещи, которые не стоит даже затевать. Но многие непробовали сами результата и соблазняются.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #95 Ответы: #141

118. Сообщение от Аноним (22), 08-Авг-21, 14:26   +/
Ну, если бы они осилили http2.createServer, то последствий их рукоблудия перечисленные уязвимости не коснулись бы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #94

119. Сообщение от Аноним (147), 08-Авг-21, 14:31   +/
Как раз в них. Фронт и бэк - две группы разработки, работающие в тесном сотрудничестве. Родили вместе.

Various people believe in JavaScript crypto, unfortunately. This small
example helps them fuel their poor taste.

https://github.com/WireGuard/wireguard-tools/blob/3ac679e7a1...

Везде чмырят...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #94 Ответы: #139

120. Сообщение от Аноним (22), 08-Авг-21, 14:32   +/
> Серваки заимплементившие фичу и повышение скорости загрузки сайтов?

Verisign, без вопросов отбирающий домены у оппозиционных СМИ.
Cloudflare, который немного навязчиво продвигает свои услуги (на предыдущей работе нам сначала прилетела DDoS-атака, а через пару дней - коммерческое предложение от этой милой компании).

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #87 Ответы: #128

121. Сообщение от Аноним (22), 08-Авг-21, 14:44   +/
Для проектов уровня ~приветмир~ интернет-магазина "Васян сейлз" - да. Как говорится, "специализация - удел насекомых".

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #110

122. Сообщение от gvx (?), 08-Авг-21, 15:13   +/
>нормальных масштабируемых монолита

Это надо внести в луддитско-свитеро-бородные анналы.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #80 Ответы: #127

123. Сообщение от Онаним (?), 08-Авг-21, 19:29   +/
Сфейспалмил.
SNI к HTTP - ВНЕЗАПНО - не имеет никакого отношения :D
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #114 Ответы: #129

124. Сообщение от Онаним (?), 08-Авг-21, 19:30   +/
> А нужно не кое-что, а полноценное изменение конфигурации.

Раз в секунду.
Как правило если такое начало требоваться - самое время что-то в канцелярии подправить.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #112

125. Сообщение от Онаним (?), 08-Авг-21, 19:36   +/
> s/бэкендов/серверов в бэкенде/, конечно же.

Количество слотов да, но вот это как раз дёргается через реконфиг, если ОЧЕНЬ надо (у вас точно количество нод каждую секунду растёт?).
А так SRV с 2019 года уже поддерживается.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #113

126. Сообщение от Онаним (?), 08-Авг-21, 19:38   +/
В случае смузихлёбов я бы поставил на скачивание лефтпада для 1+1 и 2+2, а в случае 5*6 - уже целый докер с микросервисом будет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #115 Ответы: #153

127. Сообщение от Онаним (?), 08-Авг-21, 19:50   +/
Монолиты разные бывают.
Можно каждые 2*2 в микросервис вытягивать.
А можно целый кусок логики, за свой _набор_ сущностей отвечающий, и взаимосвязи между ними.
Только это уже не микросервис будет, а монолит, который не вся правда система, а часть.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #122

128. Сообщение от Аноним (-), 09-Авг-21, 04:09   +/
> Verisign, без вопросов отбирающий домены у оппозиционных СМИ.

Это как? И что этим СМИ мешает хостить сайты где-нибудь подальше от такой фирмы, особенно после зашквара? С соответствующим уроном кошельку оной, бонусом. Общая тупизна реднеков, если это про трампистов?

> Cloudflare, который немного навязчиво продвигает свои услуги

Клауд спайварь конечно та еще дрянь, но вот именно прийти с пистолетом и потребовать их юзать она не может.

> (на предыдущей работе нам сначала прилетела DDoS-атака,
> а через пару дней - коммерческое предложение от этой милой компании).

Ну, если вы сколь-нибудь крупные и не умеете нанимать нормальных архитектов, кодеров и админов - мир жесток, да. А DDOS может даже школьник сэкономиший на завтраках закахать, и если у вас на этот счет совсем плана не было - у вас херовая инфраструктура, что для чего-то похожего на компанию гребаный стыд.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #120

129. Сообщение от Аноним (-), 09-Авг-21, 04:12   +/
> Сфейспалмил.
> SNI к HTTP - ВНЕЗАПНО - не имеет никакого отношения :D

Веб сервак может иметь свое мнение на этот счет. И кстати интересно, не вылезет ли там где-нибудь desync на тему того что поимело приоритет в фронте и бэке. Выглядит как еще одно необтоптаное поле для грабель.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #123 Ответы: #142

130. Сообщение от Аноним (-), 09-Авг-21, 04:15   +/
> Подшивать к TLS можно чего угодно - проблемы ССЗБ шерифа не волнуют.

Однако вон те хаксоры вполне себе стырили внутренние хидеры и в конце концов тоже отымели.

> Важно то, что контент из TLS сдекриптится до исходного неизменного HTTP, SMTP
> или чего там у вас завёрнуто, т.е. исходный контент TLS не видоизменяет.

Однако дополнительных свойств и параметров отрастает и то что к суммарной обработке этого сервером нельзя DESYNC применить - да в общем то не факт. Скажем с SNI можно наверное попытаться и посмотреть, где что приоритетнее. Например, Host: vs SNI наверное может быть использовано для unexpected реакции софта типа фронтов, прокси, ssl терминаторов и проч.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #106

131. Сообщение от Аноним (-), 09-Авг-21, 04:37   +/
> H2 на бэках конкретно у нас упорно не приживается.

Жирные корпы тоже, вот, думали сэкономить. Некоторые даже конопатили эти CVE раза по 3, демонстрируя уровень компетентности своих вебмакак.

> Основная причина - возможность в пределах одного коннекта открыть овердохера произвольных
> процессов/тредов в динамике,

Я правильно понимаю идею, что в кретинской архитектуре вашего бэка виноват HTTP/2? :) КМК, это барахло и при первом же ддосе скончается жесточайше, и вы пойдете клаудспайварь любить, или какую там еще "крышу" костылящую вашу ламерство.

Да, вы знаете, форкать по процессу и даже треду на запрос, и тем более без лимитов - не было сильно удачной идеей с самого начала. А pipelining позволяющий базовую версию того самого - вообще-то фича HTTP/1 еще. И вон те извращения с chunked они судя по всему с своих технологий атак HTTP/1 "бэкпортировали", или типа того.

> это всё приходится зажимами лимитировать, и честно говоря
> - проще вынести на фронт, вынеся все лимиты на стык, где
> потоки уже преобразованы в последовательные на H1.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #104

132. Сообщение от Аноним (-), 09-Авг-21, 04:41   +1 +/
> (то что они миллисекундные на фоне _секунд_ как минимум на собственно скачивание

И тем не менее, кпд канала может получиться довольно издевательским. Особенно если вон там еще 20 скриптов на разных CDN распихано. Надо же все хайповые либы прицепить, или где?

> - смузижорам неведомо - у них внутри гугля везде уже 100G
> прямо до ноута обезьянки-разработчика)

Умничать о мобильном вебе с жирного проводного линка так то это эксперт уровня бох^W пох...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69

133. Сообщение от Аноним (-), 09-Авг-21, 04:47   +/
> Другое дело, что там, где начинается хайлоуд, это всё по уму горизонтально
> масштабируется, и не надо извращаться с мультиплексированием внутри простого как доска
> протокола.

Теоретически да. Практически - установка и завершение TCP все же не халявные, и это создает некий оверхед. Если мультиплексировать и не делать форк/старт треда на каждое это вот, оверхед заметно экономится. И если обратить внимание, изначально атака была на HTTP/1. И да, если делать как выше, прямая атака становится проблемой, однако если их статью посмотреть, в случае если фронт и бэк видят мир по разному, они все же придумали странные извращения с cache poisoning и проч. Разное видение мира разными компонентами - в любом случае остается проблемой, которую можно эксплуатировать газилионом странных способов.

А если фронт будет работать как вон то, это будет хтонически неэффективно и весьма атакуемо ддосами.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #101

134. Сообщение от Аноним (-), 09-Авг-21, 04:48   +/
> Про chunked пожалуй соглашусь, данное счастье требует некоторой аккуратности.
> С другой стороны то, что с H2->H1 происходит, рядом с chunked не
> лежало и не ползало.

Это судя по виду лишь усиленная и заапгрейженая версия атак которые они на HTTP/1 практиковали, используя разное видение мира фронтом и бэком и там.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #103

135. Сообщение от Аноним (-), 09-Авг-21, 04:55   +/
> Да, большой монолит сложнее поддерживать.

Он склонен превращаться в большое месиво. Которое к тому же скорее всего больше оверхеда на конкретно вон тот запрос.

> Но жесть в том, что менять рост сложности на не менее экспоненциальный
> рост требований к инфраструктуре получится только до определённого предела.

Само по себе вон то - не обязывает повышать требования к инфраструктуре вроде. Откуда это следует? Другое дело что вебмакаки могут любую идею довести до маразма.

> А после и tcp не tcp, и всё остальное :)

У TCP есть свои long standing issues, а в мире с беспроводными линками он работает "не очень".

> по инфраструктуре тем самым хипстерам не просто очень сложно, а близко к импоссибл.

В этом месте некоторые начинают догадываться почему хорошие архитекты дороги и редки...

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

Факапы на уровне архитектуры никогда не были простыми и дешевыми. Но да, довольно многие узнают это сложным - и дорогим - способом, подорвавшись "что-нибудь накодить, а потом подумаем" :)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #109

136. Сообщение от Аноним (-), 09-Авг-21, 04:59   +/
> Одна А-запись = один server - крайне уныло. Чтобы банально поменять количество
> бэкендов - нужно лезть в API, причем их количество ограничено заранее
> созданными слотами.

А зачем это менять раз в секунду? Чтобы прострелить себе пятку, а потом продать всем вокруг пластырь от тупости?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #112

137. Сообщение от Аноним (-), 09-Авг-21, 05:05   +/
> Но эволюция, а впоследствии - и прогресс, почему-то упорно порождают все более
> усложнённые системы.

...состоящие из простых систем. Отказ каждой из которых в отдельности вообще похрен. У вас каждый день мрет куча клеток но вы вообще не замечаете это. Может ли похвастаться этим ваш бэк?

> Поэтому когда я вижу, когда носитель килограммового шмата нейронов ноет о переусложнённости
> - хочется посоветовать ему деградировать обратно до амёбы.

Вы не правильно поняли эволюцию. Там случилось примерно то же что у хороших программистов. Каждая клетка сама по себе - не сильно сложнее амебы. Более того, глобальная архитектура с массовым параллельным процессингом и избыточностью так то сильно получше того что может большая часть вебмакак изобразить. А вот штуки типа гугла эти идеи неплохо прочухали так то...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #116

138. Сообщение от Аноним (-), 09-Авг-21, 05:07   +/
> Примерно да. Оверинжениринг и овердекомпозиция кажутся простыми на этапе первичной сборки,
> но выстреливают в ногу далее, на развитии и эксплуатации, зачастую потому,
> что особенности тьмы тьмущею сущностей целиком удержать даже документация уже не
> помогает. "Не помнишь - запиши. Записал. Забыл, где записал" :)

Сам по себе HTTP/2 в этом плане кстати не такой уж оверинженернутый, хотя mandatory сжатие хидеров они наверное все же зря. А идея убрать special meaning у всяких закорючек и байтиков как раз таки сама по себе очень неплоха. Чистый HTTP/2 не получится левыми хидерами так по наглому кормить как HTTP/1 по жизни кормят, да и размер запроса юзеру сильно менее подконтролен. Другое дело, что красиво было на бумаге, но пришли чуваки с HTTP/1 бэками и вырыли себе овраг...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #111

139. Сообщение от Аноним (-), 09-Авг-21, 05:16   +/
> Как раз в них.

Эта проблема может возникнуть даже в проектах никак не использующих JS, и вообще, достаточно концептуальна.

Root cause - разное видение мира разными частями системы, ЯП в формулу факапа вообще не входит. Я вообще видел это в совсем других протоколах и ЯП, но оно тоже жгло напалмом по примерно тем же failure modes. Это довольно мощный - и довольно недооцененный - класс багов.

> Various people believe in JavaScript crypto, unfortunately.

Я даже согласен, но это все же вообще совсем полностью другой класс проблем. Хотя если свести все проблемы к "програмер/архитект идиот", тогда будет что-то общее конечно. Но это довольно упрощенная картина мира.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #119 Ответы: #144

140. Сообщение от Аноним (-), 09-Авг-21, 05:23   +/
Ммм... хакир! :) Т.е. HTTP/2 стал внаглую рассылать Transfer-Encoding как HTTP/2 хидер? Мсье эстет, мне это нравится. Пойду тоже что-нить пропатчу, только, пожалуй, в сорце :]
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67

141. Сообщение от Аноним (-), 09-Авг-21, 05:28   +/
> Между фронтом и бэком и на ф. и на б. как раз
> не было знавших и понимавших, или их задавил лидер разработки.

Более вероятно что...
1) Это были 2 тотально разные команды, плохо или никак взаимодействующие между собой.
2) В HTTP/1 есть несколько мест которые можно сделать по разному и довольно много мест где можно лохануться в парсинге. HTTP/2 в этом несколько лучше, кстати. Но если его в HTTP/1 перегнать, проблемных мест становится даже больше.
3) Архитект мог быть лох, а безопасТник возможно умел только кошмарить хомячков во имя луны. Вон там красавы, с 3-4 попыток зачинить не смогли местами. То-есть они сами вообще толком не поняли проблему и закостылили конкретное проявление. За что получили еще 3-4 успешных эксплойтирования, обходом конкретной затычки.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #117

142. Сообщение от Аноним (-), 09-Авг-21, 12:19   +/
>> Сфейспалмил.
>> SNI к HTTP - ВНЕЗАПНО - не имеет никакого отношения :D
> Веб сервак может иметь свое мнение на этот счет. И кстати интересно,
> не вылезет ли там где-нибудь desync на тему того что поимело
> приоритет в фронте и бэке. Выглядит как еще одно необтоптаное поле
> для грабель.

Веб сервак обычно только правильный сертификат подбирает, смотря на SNI.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #129

143. Сообщение от айпони одобряет микросервисы (?), 09-Авг-21, 15:52   +1 +/
>Как то декомпозиция задачи и перевод оной к некоторому количеству маленьких простых программ

Программа перестаёт быть простой и маленькой ровно тогда, когда она становится сервисом или делает то, что можно было сделать через stdin/stdout по сети. Можно было нашлёпать простых процессов и не вымучивать из себя архитектуру, где простой фильтр становится сервером.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #97 Ответы: #147

144. Сообщение от айпони одобряет микросервисы (?), 09-Авг-21, 15:58   +/
>Root cause - разное видение мира разными частями системы

А то, что видение мира у JS-смузихлёбов отбито по самое не балуй, тебя не смущает?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #139 Ответы: #151

145. Сообщение от Аноним (145), 09-Авг-21, 16:23   +1 +/
вебня такая вебня
Ответить | Правка | Наверх | Cообщить модератору

146. Сообщение от Аноним (146), 09-Авг-21, 20:44   –1 +/
Надо было на расте писать.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #148, #149

147. Сообщение от Аноним (147), 09-Авг-21, 21:37   +/
Не ясно, в чём разница со стороны логики приложения, сравнивая stdin/stdout между процессами и tcp между микро-серверами.

Проблема в связности процессов и микро-с. и она совершенно отдельная от выбора stdin/stdout или tcp.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #143 Ответы: #160

148. Сообщение от Аноним (148), 09-Авг-21, 22:17   +1 +/
В соседнюю ветку загляни, там в твоём расте дыреней наделали мама не горюй.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #146

149. Сообщение от Аноним (-), 09-Авг-21, 22:22   –1 +/
> Надо было на расте писать.

Точняк, надо запилить что-нибудь с этой уязвимостью и на хрусте. Нужно больше CVE, милорд!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #146

150. Сообщение от Gogi (??), 10-Авг-21, 00:14   –1 +/
Это называется не "уязвимость", а "заставили обезьян веб проектировать"!
Бэкенду вообще никаким боком не нужен HTTP! Связать фронт и бэк можно сотней РАЗНЫХ способов, где запросы разных клиентов вообще не пересекаются.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #164, #166

151. Сообщение от Аноним (-), 10-Авг-21, 07:07   +/
> А то, что видение мира у JS-смузихлёбов отбито по самое не балуй,
> тебя не смущает?

Так оно же не только у них отбито. Вон какие-нибудь питонисты или даже хрустики с их серебряными пулями из слегка приукрашеного материала.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #144

152. Сообщение от www2 (??), 10-Авг-21, 08:20   +/
До декомпозиции на микросервисы была декомпозиция на отдельные взаимодействующие процессы, как в Postfix, например. А до этого была декомпозиция на модули с явно объявленными интерфейсами, в обход которых нельзя ходить. Примеров в разных ЯП много своих, взять хотя бы Java и Modula. А до этого было примерно то же самое, но с динамическими библиотеками. А до этого то же самое, но со статическими библиотеками.

Угадайте, что будет быстрее работать: микросервисы или статически собранные в монолитный исполняемый файл модули-библиотеки?

Угадайте, что будет проще поддерживать: тысячу микросервисов, каждый из которых может взаимодействовать с каждым по принципу графа, или тысячу статически собранных в монолит модулей, между которыми связи выстраиваются в дерево?

Угадайте, можно ли будет при необходимости вынести модуль из статически собарнного монолита в отдельный сетевой сервис?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #97 Ответы: #161, #162

153. Сообщение от Michael Shigorinemail (ok), 10-Авг-21, 21:54   –2 +/
> В случае смузихлёбов я бы поставил на скачивание лефтпада для 1+1 и
> 2+2, а в случае 5*6 - уже целый докер с микросервисом будет.

---
От учащихся старших школ (high schools, аналог наших старших классов средней школы) штата Орегон отныне не будут требовать, чтобы они демонстрировали в тесте перед выпуском определенный уровень навыков в чтении, письме и математике. А ежели кто попробует с такими нелепыми требованиями выступить, тот будет наказан по всей строгости закона.

Достичь этого важного этапа в развитии народного образования местным энтузиастам удалось путём напряжённой и слаженной работы разных слоёв общества. Сначала прогрессивная общественная организация «Фонд за лучший Орегон» добилась того, что в сенат штата был внесён соответствующий законопроект, который — внимание! здесь цитата, в которой каждое слово драгоценно — «отражает те подлинные ценности, которые необходимы каждому учащемуся, чтобы добиться преуспевания в XXI веке».  Ключевое слово здесь, разумеется — «подлинные». А ценности ложные — то есть бессмысленные умения читать, писать да считать, которые навязывались школьникам ретроградами из древнего века XX, а то как бы и не из XIX — не отражает.
--- http://a-nikolov.livejournal.com/531242.html (achtung, RT!)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #126 Ответы: #154

154. Сообщение от Онаним (?), 10-Авг-21, 23:17   +1 +/
Ссылка на производное ботофермы, которое маскируется под другого пользователя - это пять.
Уровень тот.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #153

155. Сообщение от Gena ANTG (ok), 11-Авг-21, 17:29   +/
Мамкины "иксперты" даже не поняли о чем идет речь в статье, говорят за JS, Rust :D
Подумали, что под фронтом имеют ввиду JS, а не прокси-сервер на бэке с проблемой общения между протоколами, а-а-а-а-ахахах.
Ответить | Правка | Наверх | Cообщить модератору

156. Сообщение от Аноним (22), 17-Авг-21, 19:10   +1 +/
> Радует пока одно: у меня на фронтах немолодёжный haproxy, новый парсер которого по-человечески разбирает и перебирает запросы перед отдачей в бэкенды.

Поздравляю вас с этим, и рекомендую немедленно обновиться
https://git.haproxy.org/?p=haproxy-2.4.git;a=commit;h=9e0c2b...
https://git.haproxy.org/?p=haproxy-2.4.git;a=commit;h=6c6b9a...
https://git.haproxy.org/?p=haproxy-2.4.git;a=commit;h=b4934f...
https://git.haproxy.org/?p=haproxy-2.4.git;a=commit;h=e9f1f1...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #157, #158

157. Сообщение от Онаним (?), 17-Авг-21, 20:05   +/
У меня за фронтом такой же не менее немолодёжный H1, поэтому меня эти пляски с угрёбищным H2 тоже не затронули :)

Кроме https://git.haproxy.org/?p=haproxy-2.4.git;a=commit;h=e9f1f1...

Но в данном случае на стороне серверов строгая валидация, поэтому пох.
Тем более что рутинное обновление haproxy делается буднично, и да, скоро обновлюсь, спасибо :)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #156

158. Сообщение от Онаним (?), 17-Авг-21, 20:06   +/
Хотя конечно да, есть определённый мысли вообще убрать ALPN h2 с фронтов, ибо нефиг.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #156 Ответы: #159

159. Сообщение от Онаним (?), 17-Авг-21, 20:07   +/
// определённый позыв / определённые мысли
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #158

160. Сообщение от Онаним (?), 17-Авг-21, 20:24   +/
Разница как раз в той самой latency, с которой потом героически начинают бороться (перед этим создав себе этот самый героический геморрой).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #147

161. Сообщение от Онаним (?), 17-Авг-21, 20:25   +/
> Угадайте, что будет проще поддерживать: тысячу микросервисов, каждый из которых может взаимодействовать с каждым по принципу графа, или тысячу статически собранных в монолит модулей, между которыми связи выстраиваются в дерево?

Сам вопрос уже некорректен, потому что из тысячи мелконедосервисов получится два десятка самостоятельых монолитов.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #152

162. Сообщение от Онаним (?), 17-Авг-21, 20:26   +/
> Микросервисы - это механизм принуждения для тех, кто не способен вырабатывать и следовать политике.

Микросервисы - это попытка хоть как-то разрулить поделки обезьянок-неосиляторов ("тех, кто не способен" видеть более одной сущности сразу в разрезе сервиса) до рабочего состояния.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #152

163. Сообщение от Аноним (164), 18-Авг-21, 09:44   +/
А почему бы просто не общаться с бэкендами по http/2? Ведь это бинарный протокол, а значит парсинг и сериализация в него идёт эффективнее. Заодно и встроенные в парсер проверки всех размеров внутри сообщения.
Ответить | Правка | Наверх | Cообщить модератору

164. Сообщение от Аноним (164), 18-Авг-21, 09:45   +/
Есть ещё кстати fastcgi. Можно было бы использовать его.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #150

165. Сообщение от Аноним (166), 22-Дек-23, 22:44   +/
Если в HTTP/2 указана длина, зачем допускается Content-Length? Даже если это не прокси, а просто сервер, ему на какое значение ориентироваться?
Ответить | Правка | Наверх | Cообщить модератору

166. Сообщение от Аноним (166), 22-Дек-23, 22:46   +/
К разработчикам SPDY, из которого произошёл HTTP/2 первое предложение относится на 100%. В той конторе вменяемость запрещается проносить на территорию.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #150


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру