The OpenNET Project / Index page

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



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

"Уязвимость конфигураций Nginx с некорректными настройками блока alias"  +/
Сообщение от opennews (??), 05-Июл-23, 19:41 
Некоторые серверы с nginx остаются уязвимы для техники Nginx Alias Traversal, которая была предложена на конференции Blackhat ещё в 2018 году и позволяет получить доступ к файлам и каталогам, размещённым вне корневого каталога, заданного в директиве "alias". Проблема проявляется только в конфигурациях с директивой "alias", размещённой внутри блока "location", параметр которой не завершается на символ "/"...

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

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

Оглавление

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

3. Сообщение от Аноним (3), 05-Июл-23, 19:50   –2 +/
Сишники и их классическая неспособность защититься от ../../../etc/passwd. Кто-нибудь познакомьте их с такой революционной по их меркам концепцией, как "библиотека по работе с путями".
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #5, #14, #19, #25, #64

4. Сообщение от Аноним (5), 05-Июл-23, 19:53   +2 +/
nginx все равно древний заброшенный сервер, который уже давно никто не разрабатывает.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #6, #7, #10

5. Сообщение от Аноним (5), 05-Июл-23, 19:53   +4 +/
Она называется leftpad мы помним.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #9, #114

6. Сообщение от lucentcode (ok), 05-Июл-23, 19:59   +1 +/
Да ладно? А недавние добавления HTTP/3 и прочие новые плюшки, их не существует, да? А больше половины хостов в сети Интернет, что его юзают, это в вашем альтернативном мире что-то из мира фантастики?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #11

7. Сообщение от Аноним (7), 05-Июл-23, 20:02   +1 +/
а я юзаю блин, не хочу чтобы меня сломали, что сейчас в тренде то?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4

9. Сообщение от Аноним (3), 05-Июл-23, 20:06   +2 +/
лефтпад в исполнении сишников как пить дать будет содержать парочку уязвимостей.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #17

10. Сообщение от penetrator (?), 05-Июл-23, 20:08   –1 +/
вообще-то одинз из самых популярных вебсерверов

и какая альтернатива? HAProxy? не много ли его, если тебе балансировка не нужна?

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

11. Сообщение от Tron is Whistling (?), 05-Июл-23, 20:21   –2 +/
> А больше половины хостов

Максимум треть. Да и в той трети на львиной доле почти наверняка он тупой прокси, за которым стоит нормальный вёбсервер.

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

12. Сообщение от Tron is Whistling (?), 05-Июл-23, 20:22   +/
Если балансировка НУЖНА - haproxy.
Если надо статику - lighttpd вполне себе сгодится. Или Apache/mpm_event - оно от нгинха отстаёт, но не фатально.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #105

13. Сообщение от Аноним (13), 05-Июл-23, 20:23   –1 +/
По идее, такое должны отлавливать статические анализаторы типа яндексовского gixy.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #18, #52, #115

14. Сообщение от Аноним (14), 05-Июл-23, 20:38   –6 +/
В ручной обработке путей можно накосячить независимо от языка. Но да, C сразу подразумевает низкий уровень разработчика и большую вероятность в том числе логических ошибок.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #26

16. Сообщение от Аноньимъ (ok), 05-Июл-23, 21:21   –6 +/
Вообще отдавать файлы из директорий в интернет по шттп запросам немного маразматичная идея...
Как и сервера почты хранящие сообщения в файлах.
Но это юникс технологии...
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #21

17. Сообщение от Аноним (5), 05-Июл-23, 21:47   +3 +/
Ничего удивительного если ты начнёшь писать на си ты ещё ногу себе отстрелишь.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #58

18. Сообщение от Аноним (5), 05-Июл-23, 21:48   +2 +/
Код открыт если бы мог найти тогда бы нашёл.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13

19. Сообщение от OpenEcho (?), 05-Июл-23, 22:03   –1 +/
> "библиотека по работе с путями"

А своей то башкой вообще думать слабо ?
А то как посмотришь на твоих соратников, так на строчку хело-ворлд сотня импортов
Причем 100% уникально "чистейших библиотек", "без грамма дерьма". И думать не надо и в случае чего свалить есть на кого

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

20. Сообщение от Аноним (20), 05-Июл-23, 22:04   +1 +/
Теоретически конечно пользователь "сам дурак", ибо все работает так, как описано в документации. А практически - та еще дыра.
Ответить | Правка | Наверх | Cообщить модератору

21. Сообщение от OpenEcho (?), 05-Июл-23, 22:10   –3 +/
> Вообще отдавать файлы из директорий в интернет по шттп запросам

И в чем теперь принято отдавать файлы по интернету если хттп?

> немного маразматичная идея...

Приехали... Ысчо один судья и непризнанный гений?

> Как и сервера почты хранящие сообщения в файлах.

А, ну да, надо в облачных бакетах, точно, - всех в одно стойло
Или там что то новое нарисовалось?

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

22. Сообщение от Тот_ещё_аноним (ok), 05-Июл-23, 22:13   +6 +/
Прям проникся с каментов Си-хейтеров

Новость: "При неправильно написанной конфигурации вебсервера будет дырка"

Виноваты язык Си и те кто сервер написал
Написавшим дырявый конфиг и не исправившим с 2018 года - почет и уважение

Логика)

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

23. Сообщение от Аноньимъ (ok), 05-Июл-23, 22:19   –3 +/
Речь шла конечно же о примитивном сопоставлении путей из запроса с путями файловой системы, что бред небезопасно и тупо.
Сама по себе концепция идиотская.

>И в чем теперь принято отдавать файлы по интернету если хттп?

FTP

>Или там что то новое нарисовалось?

Базы данных изобрели много много десятилетий назад. Но когда вместо мозгов юникс и сишка, то все на свете сразу файлом становится.

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

24. Сообщение от Аноньимъ (ok), 05-Июл-23, 22:23   –4 +/
Обычно принято конфиги на вилидность проверять прежде чем применять.

Но сишники такой простой идеи не понимают, ведь С/С++ компиляторы любой бред шизофреника маньяка готовы компилировать и это у них ФИЧА такая.

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

25. Сообщение от Тот_ещё_аноним (ok), 05-Июл-23, 22:36   –1 +/
Вы готовы предложить альтернативы?
Языка и вебсервера
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #51, #54

26. Сообщение от Тот_ещё_аноним (ok), 05-Июл-23, 22:37   +/
Нет там никаких косяков
Есть спецификация на конфиг
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14 Ответы: #121

27. Сообщение от Тот_ещё_аноним (ok), 05-Июл-23, 22:39   –1 +/
Так все эти конфиги - валидные
Если кто-то спек не прочёл - ссзб
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24 Ответы: #31, #43

28. Сообщение от Аноним (28), 05-Июл-23, 22:48   +2 +/
>>И в чем теперь принято отдавать файлы по интернету если хттп?
> FTP

Нет, спасибо. Мёртворождённые протоколы не нужны. FTP был большой ошибкой, и ещё большей ошибкой оказались все попытки его починить.

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

29. Сообщение от Аноним (29), 05-Июл-23, 23:22   +3 +/
Так это не баг, а фича. Alias сопоставляет префикс как подстроку, там / - просто символ, как и любой другой.

Скажем, есть /var/www/images/photo-1.jpg (photo-2.jpg итд), и хочется по /photos/1.jpg отдать /var/www/images/photo-1.jpg итд. С текущей реализацией alias это легко делается безо всяких регулярных выражений. А если "починить" "уязвимость", подобные конфигурации сломаются.

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

30. Сообщение от OpenEcho (?), 05-Июл-23, 23:31   –2 +/
> Сама по себе концепция идиотская.

Настолько "идиотская", что до сих пор доминирует

> FTP

Да, я смотрю у вас "очень высокий" концептуальный уровень

> Базы данных изобрели много много десятилетий назад.

Здается мне, что вы застряли на Вордпресс девелопенге?

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

31. Сообщение от Аноним (28), 05-Июл-23, 23:36   +1 +/
> Если кто-то спек не прочёл - ссзб

Есть один важный принцип проектирования софта, называется «principle of least astonishment». Если ты про него не знаешь — ССЗБ.

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

32. Сообщение от Аноним (28), 05-Июл-23, 23:38   +/
Хорошая фича, и кейс вполне реальный. Но можно при этом не отдавать ../../../etc/passwd?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29 Ответы: #39, #88

39. Сообщение от mistiqemail (ok), 06-Июл-23, 01:13   +3 +/
скорее не так, отрезать все что выходит за рамки / веб сервера. тогда ничего левого и не будет отдано.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32 Ответы: #45, #49

41. Сообщение от Аноньимъ (ok), 06-Июл-23, 01:29   +1 +/
>> Сама по себе концепция идиотская.
> Настолько "идиотская", что до сих пор доминирует

Ну да, как и идея херачить текст полученный из интернета в командную строку, как те потешные придурки тут делают https://www.opennet.ru/opennews/art.shtml?num=59363

>Да, я смотрю у вас "очень высокий" концептуальный уровень

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

>Здается мне, что вы застряли на Вордпресс девелопенге?

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

Но вообще, если у этих ВордПресс девелоперов, есть понимание концепции баз данных, то как бы не стоит вам на них с верху в низ смотреть.

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

43. Сообщение от Аноньимъ (ok), 06-Июл-23, 01:38   +/
> Так все эти конфиги - валидные
> Если кто-то спек не прочёл - ссзб

Вот я и говорю, типичный сишный маразм.

Спек конечно же стоит прочитать, только в спеке будет undefined behaviour через абзац, а double не меньше float который может быть любого размера как боженька пошлёт.
Ну и конечно же неотлавливаемые переполнения целых чисел.

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

44. Сообщение от Аноньимъ (ok), 06-Июл-23, 01:45   –2 +/
Вот я ровно о том же и говорю.

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

Другой пример стандарт С++.

Третий пример, недавно затонувшая субмарина Титан.

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

45. Сообщение от Аноним (20), 06-Июл-23, 03:00   +1 +/
Ну здесь идея в том что alias может указывать на любой каталог, независимо от того где расположен корень веб-сервера. Иначе толку от этой директивы немного.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #39 Ответы: #46, #89, #92

46. Сообщение от mistiqemail (ok), 06-Июл-23, 03:07   +1 +/
> Ну здесь идея в том что alias может указывать на любой каталог,
> независимо от того где расположен корень веб-сервера. Иначе толку от этой
> директивы немного.

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

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

47. Сообщение от Аноним (47), 06-Июл-23, 05:21   +2 +/
Это не баг, а фича. Закрывайте каталоги другими доступными средствами. Например, не устанавливая nginx в основную систему или совсем не устанавливая.
Ответить | Правка | Наверх | Cообщить модератору

48. Сообщение от Sw00p aka Jerom (?), 06-Июл-23, 07:04   –1 +/
>называется

Даффай по-руцки, "защита от ивана-дурака" :)

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

49. Сообщение от Sw00p aka Jerom (?), 06-Июл-23, 07:10   +1 +/
>тогда ничего левого и не будет отдано

Ну раз всем разрешено читать файл /етц/пассвд, то в чем проблема , если его прочтет по запросу нгинкс? А нуда ибешники про юзер энум затрубят? Юзайте тогда нормальные пермишен костили вроде селинуксов, фаполисид, аппармоуры и т.д. колясок :)

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

50. Сообщение от arisu (ok), 06-Июл-23, 07:54   +2 +/
«кодироваеть умею, для людей не умею.» потому что алиас для не-каталога должен или быть другой командой, или требовать обязательной опции-уточнения.

вообще, сишников нельзя выпускать из клетки, и уж тем более нельзя позволять им дизайнить что-то для end user'а. потому что у них повальный вывих мозга: «надо сделать так, чтобы вероятность ошибки пользователя была велика, и можно было самого пользователя потом обвинить.»

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

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

51. Сообщение от Брат Анон (ok), 06-Июл-23, 08:33   +1 +/
Нет проблем. Учитывая, что речь идёт про веб-сервер: oberon, modula-2, golang, freepascal, freebasic, rust.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25 Ответы: #61, #76

52. Сообщение от Брат Анон (ok), 06-Июл-23, 08:36   +1 +/
1) Если языку нужен статический анализатор (правила, не определены в самом языке) -- это плохой язык.
2) При чём тут статический анализатор, если это дело ТЕСТОВ?! На весь возможный код на языке N статических анализаторов не напасёшься.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #109, #144

53. Сообщение от 1 (??), 06-Июл-23, 09:30   +1 +/
> Как вариант разрешить симлинки из рута веба в другие каталоги, но не более.

Ну а дальше он по этим симлинкам и вылезет :-)

P.S. Приплетание С тут по принципу "И казалось бы, причём здесь Лужков" ? Ах да ... те, кто хает сишку тогда только родились.

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

54. Сообщение от Аноним (58), 06-Июл-23, 09:37   –3 +/
Сервер можно написать хоть на nodejs и он будет прекрасно работать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25 Ответы: #65

57. Сообщение от Аноним (58), 06-Июл-23, 09:43   +2 +/
Зачем сервер запускать без контейнера, лол
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #91

58. Сообщение от Аноним (58), 06-Июл-23, 09:46   +3 +/
Сишка для программистов с профильным образованием и серьезным фундаментом в плане того как работает ЭВМ. Смузихлебам Си противопоказан, для вас есть чатжпт, джабаскрипт и питон.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17 Ответы: #59, #60, #69

59. Сообщение от arisu (ok), 06-Июл-23, 09:58   –1 +/
> Сишка для программистов с профильным образованием и серьезным фундаментом в плане того
> как работает ЭВМ.

бедный Дейкстра. куда уж ему, недоучке, до Великих Сишников с Профильным Образованием…

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

60. Сообщение от arisu (ok), 06-Июл-23, 09:59   –3 +/
> Сишка для программистов с профильным образованием и серьезным фундаментом в плане того
> как работает ЭВМ.

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

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

61. Сообщение от Аноним (61), 06-Июл-23, 10:25   +2 +/
И на чем тут кроме go есть вакансия хотя бы в Москве ?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51

63. Сообщение от Ilya Indigo (ok), 06-Июл-23, 10:30   +2 +/
Написать location без / на конце, даже без alias, это нужно умудрится как-то сделать, даже не знаю как...
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #75, #79, #99

64. Сообщение от YetAnotherOnanym (ok), 06-Июл-23, 11:06   +1 +/
> Сишники

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

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

65. Сообщение от YetAnotherOnanym (ok), 06-Июл-23, 11:20   +5 +/
> прекрасно

Какие у Вас своеобразные представления о прекрасном...

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

67. Сообщение от Пряник (?), 06-Июл-23, 11:28   +/
Почему nginx -t не проверяет этого?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #77

68. Сообщение от YetAnotherOnanym (ok), 06-Июл-23, 12:06   +/
> Сама по себе концепция идиотская.

Сама по себе концепция вполне здравая. Для статичных html-страниц, лежащих на диске (это тот контент, для которого она создавалась), равно как и вообще для статичного контента, хранящегося в виде файлов на диске, эта концепция естественна и уместна. А то, что не только лишь все программеры могут в нормальный маппинг URL'а в путь ФС - это проблемы конкретных программеров.
Для динамического контента никто не запрещает сделать развесистую систему парсинга URL'а, выбора соответствующего обработчика для запроса и передачи ему разобранных частей URL'а в виде параметров (пример: https://zotonic.com/docs/1541/dispatch-rules ). Причём один из таких модулей, отдающий статичный контент (архивы с прошивками, например, или официальные документы в PDF, или что угодно, что отдаётся в неизменном виде), будет всё равно работать именно на принципе марринга пути URL'а в путь на диске.
Кстати, в упомянутом примере в URL'е вида https://sitename.domain/static/fw/../../../../../../etc/passwd обработка ".." производится до маппинга в путь на диске. То есть, первые два ".." съедят "fw" и "static", следующие будут просто отбрасываться, потому что "/" уже достигнут, и на стадию выбора контроллера для обслуживания запроса выйдет URL "https://sitename.domain/etc/passwd", на который прилетит "404".

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

69. Сообщение от Бывалый смузихлёб (?), 06-Июл-23, 12:15   +/
а что, на сишников целенаправленно учат ?
это ведь вроде первого курса профильного ВУЗа...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #58 Ответы: #82

71. Сообщение от YetAnotherOnanym (ok), 06-Июл-23, 12:17   +/
Гы... автоформаттер опеннета тоже конвертит URL в https://sitename.domain/etc/passwd :))
Вот почему-то у одних хватает мозгов это сделать, а у других - нет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #68 Ответы: #93

72. Сообщение от Бывалый смузихлёб (?), 06-Июл-23, 12:23   +1 +/
Без разницы на чём
По сути, это просто запрос с конкретным юрл'ом, который далее уже обрабатывается

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

Оно уже тыщщу лет так работает. Хз кто в здравом уме в тырнеты пробрасывает доступ к файлам способом, описанным в статье

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

73. Сообщение от Тот_ещё_аноним (ok), 06-Июл-23, 13:03   –2 +/
Когда-то в инструкции по эксплуатации автомобиля писали, как регулировать зазоры клапанов
Теперь, что аккумуляторную жидкость пить нельзя

Ожидаемое поведение в конфиге вебсервера? Это серьёзно?
Читаем спецификацию и никаких сюрпризов

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

74. Сообщение от arisu (ok), 06-Июл-23, 13:07   +/
эвона как. ты, наверное, программист. оно и неудивительно, что софт жрёг гигабайты памяти, требует гигагерцы цпу, а тормозит при этом покруче, чем дум на 6502.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #72 Ответы: #81, #117

75. Сообщение от Тот_ещё_аноним (ok), 06-Июл-23, 13:07   –1 +/
Для нескольких персонажей выше - это норма)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #63

76. Сообщение от Тот_ещё_аноним (ok), 06-Июл-23, 13:17   –2 +/
Ага, языков ещё можно пару добавить

А вот вебсерверов из хотя бы топ5 на них написанных, что-то не видно
Может потребности в железе на одного клиента сказываются и потребляемых киловаттах?

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

77. Сообщение от Ilya Indigo (ok), 06-Июл-23, 13:21   +2 +/
> Почему nginx -t не проверяет этого?

Потому что /images нормальный допустимый шаблон для обработки запросов вида, например для
/images-user.html /images-company.html и/или /images-user/ /images-company/.
Например чтобы установить особые условия кеша.
Только для них не ставят псевдонимы.

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

78. Сообщение от arisu (ok), 06-Июл-23, 13:32   +/
«известное и на слуху» == «самое хорошее»? окай.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76

79. Сообщение от Капитан Очевидность (?), 06-Июл-23, 13:37   +/
location ~* ^/(?:xmlrpc\.php|wp-links-opml\.php|wp-config\.php|wp-config-sample\.php|wp-comments-post\.php|readme\.html|license\.txt)$ {
        deny all;
}

Ты правда думаешь, что тут нужен / в конце?
Что ты несешь вообще?
Локейшены бывают ОЧЕНЬ разные, они могут быть с трэйлинг-слэшем и без него, по обстоятельствам
А вот если это локейшен с алиасом, то должен быть трэйлинг-слэш

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

80. Сообщение от Ilya Indigo (ok), 06-Июл-23, 13:48   +/
Имел ввиду, забыл уточнить, локейшены в которых явно подразумевается одна конкретная директория!

А локейшены и такими бывают, точнее должны быть в нормальных сайтах на фреймвёрках.
<code>
    location = /index.php
    {
        return 404;
    }
    location ^~ /.
    {
        return 404;
    }
    location /
    {
        try_files $uri @php;
    }
    location @php
    {
        fastcgi_read_timeout 30s;
        fastcgi_param SCRIPT_FILENAME $document_root/index.php;
        include fastcgi_params;
        fastcgi_pass unix:/run/php-fpm.sock;
    }
</code>
Где index.php едиинственный скрипт в $document_root а всё остальное статика.
А весь код лежит за пределами $document_root и недоступен nginx-у.

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

81. Сообщение от Бывалый смузихлёб (?), 06-Июл-23, 13:49   +1 +/
> ты, наверное, программист

А кого ещё можно почти наверняка встретить на опеннете ?)

Стандарты есть стандарты, а уж если решил открыть дыру - так будь готов что ей воспользуются
Ну серьёзно

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

Посему, всё доступное строго по записи[в БД]

Но кстати, мой софт не тормозит даже на старом смартфоне

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

82. Сообщение от Аноним (-), 06-Июл-23, 13:51   +1 +/
Много знаешь айтишников кто закончил профильный ВУЗ? Сейчас среднестатистический джун = вайтишник с средним или гуманитарным образованием коммерческого ВУЗа.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69 Ответы: #84, #94

84. Сообщение от Аноним (-), 06-Июл-23, 13:54   +2 +/
> Много знаешь айтишников кто закончил профильный ВУЗ?

Двачую адеквата. В IT сегодня вкатывается каждый второй после ютуб курса питон за час. Профессионалов реально нет, наша компания уже год не может найти специалиста (компания в ЕС если что).

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

86. Сообщение от arisu (ok), 06-Июл-23, 14:08   +/
> Просто, кагбэ логично давать пользователям доступ ровно до тех файлов, которые ты
> для них выгрузил, а не для всей системы

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

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

87. Сообщение от arisu (ok), 06-Июл-23, 14:10   +2 +/
денег предлагать не пробовали? ну так, нормально денег? говорят, помогает. потому хорошие специалисты — они дорого стоят. а так-то можно до морковкина заговенья, конечно, искать. и обязательно жаловаться, что спецов нет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #84

88. Сообщение от Аноним (94), 06-Июл-23, 14:27   +/
Нормализация пути происходит на уровне location, и на его уровне неизвестно, будет внутри alias или что-то еще, это отдельный модуль. Две точки в пути без слеша - вполне валидный кейс. А со слешом там и не пройдёт.

А alias - это просто конкатенация. Отсутствие слеша в location и присутствие в другом - это выстрел в ногу. Делать же двойную проверку - это зря жечь электричество.

По хорошему, тут нужен валидатор конфигов, который бы на такую конструкцию выдавал предупреждение.

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

89. Сообщение от Аноньимъ (ok), 06-Июл-23, 14:34   +1 +/
> Ну здесь идея в том что alias может указывать на любой каталог

Ни на какой каталог он не должен указывать.
Урла это уникальный адрес ресурса.
ФС это системная база данных.
То что и там и там по случайности есть слэши в имени ресурсов и запросов к БД не означает что можно брать куски юрлы и на прямую херачить их в виде запросов к системной БД.

Так же как нельзя подобным образом из юрлы куски текста в sql запрос пихать.

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

90. Сообщение от Аноньимъ (ok), 06-Июл-23, 14:36   +/
Урла это уникальный адрес ресурса.
ФС это системная база данных.
То что и там и там по случайности есть слэши в имени ресурсов и запросов к БД не означает что можно брать куски юрлы и на прямую херачить их в виде запросов к системной БД.

Так же как нельзя подобным образом из юрлы куски текста в sql запрос пихать.

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

91. Сообщение от Аноним (20), 06-Июл-23, 15:42   –1 +/
Да вы без контейнеров скоро сложить два числа не сможете. Понапридумывали дерьма и сделали вид что без него нельзя жить.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57

92. Сообщение от Аноним (128), 06-Июл-23, 16:29   +1 +/
> Ну здесь идея в том что alias может указывать на любой каталог,

Ну так и пусть указывает, но путь пускай получает уже после обработки УРЛ (т.е. без "..").

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

93. Сообщение от Аноним (94), 06-Июл-23, 17:15   +/
https://sitename.domain/prefix..etc/passwd

Вот же, не сконвертило.

А именно такой там кейс

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

94. Сообщение от Аноним (94), 06-Июл-23, 17:20   +3 +/
А в профильных вузах сейчас где-то есть толковый Computer Science уровня MIT?

В начале нулевых я с третьего курса забил, поскольку, несмотря на именитость ВУЗ-а, с CS было печально. Физика и математика, да, были на уровне, но к тому времени я понял, что физика мне не очень интересна, а нужные области прикладной математики я и самостоятельно доучу.

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

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

96. Сообщение от targitajemail (?), 06-Июл-23, 17:47   +/
А что будет в случае наоборот? location закрыт знаком /, а alias - нет. Это норм или надо править?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #106

97. Сообщение от YetAnotherOnanym (ok), 06-Июл-23, 17:58   +/
Вообще-то, они там не по случайности.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #90 Ответы: #100

98. Сообщение от YetAnotherOnanym (ok), 06-Июл-23, 18:09   +/
Не, ну чо, маппить URL в путь к файлу через специальную таблицу в БД - один из вариантов.
Заводить отдельную таблицу, целиком состоящую из записей вида
/manuals/0123456789.pdf | /var/www/static/manuals/0123456789.pdf
это, конечно, стильно-модно-молодёжно, да.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #72 Ответы: #101

99. Сообщение от Аноним (28), 06-Июл-23, 18:11   +1 +/
Какой-то айти-шаманизм. Как догадаться, что в конце location должен быть /? Правильно, никак. Про важность слэша в конце location можно узнать только прочитав и запомнив документацию. При чём, подход неинтуитивен, т.к. на Юниксе cd directory и cd directory/ приводит к одинаковому рельзультату. Выходит, что дизайн языка конфигурации создавался не для людей, а для ChatGPT и для тех, у кого должностные обязанности состоят из двух слов: настройка Nginx.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #63 Ответы: #103

100. Сообщение от Аноньимъ (ok), 06-Июл-23, 18:15   +/
> Вообще-то, они там не по случайности.

Что ещё хуже.

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

101. Сообщение от Аноньимъ (ok), 06-Июл-23, 18:21   +/
Ну, для статического контента такую таблицу можно генерировать веб сервером автоматически из целевой директории.
Например.

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

Ключевое что не должно быть копипаста данных из урлы в запрос к ФС.

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

102. Сообщение от Капитан Очевидность (?), 06-Июл-23, 18:24   +/
> Имел ввиду, забыл уточнить, локейшены в которых явно подразумевается одна конкретная директория!

А, ну с таким уточнением да, становится твоя фраза более логичной

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

103. Сообщение от Ilya Indigo (ok), 06-Июл-23, 18:27   +2 +/
Документацию конечно же нужно читать, без неё что угодно НЕ понятно будет!
location без регулярки означает строку начинающуюся с, а не равенство.
Это удобно и зачастую именно это требуется в кофигурации.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #99 Ответы: #132

104. Сообщение от Аноним (28), 06-Июл-23, 18:30   +3 +/
> Когда-то в инструкции по эксплуатации автомобиля писали, как регулировать зазоры клапанов

Конфиг веб-сервера — это не клапана, а руль и педали.

> Ожидаемое поведение в конфиге вебсервера? Это серьёзно?

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

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

105. Сообщение от penetrator (?), 06-Июл-23, 21:37   +/
> Если балансировка НУЖНА - haproxy.
> Если надо статику - lighttpd вполне себе сгодится. Или Apache/mpm_event - оно
> от нгинха отстаёт, но не фатально.

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

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

106. Сообщение от Аноним (106), 06-Июл-23, 21:49   +/
Это наверное не дыра, но будет ли это работать, так как нужно?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #96

107. Сообщение от Аноним (107), 06-Июл-23, 22:03   +6 +/
> А вот вебсерверов из хотя бы топ5 на них написанных

Cloudflare использует свой веб-сервер (reverse proxy), написанный на Rust, под названием Pingora. Они покрывают больше 10% всего трафика в мире. Значит в топ-5 он точно входит.

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

108. Сообщение от Tron is Whistling (?), 06-Июл-23, 22:15   +/
Тоже haproxy сгодится.
Или простой проброс порта, если локалхост один - зачем реверс прокси-то в этих условиях?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #105

109. Сообщение от Tron is Whistling (?), 06-Июл-23, 22:16   –1 +/
И как ты собрался тестами покрыть все возможные входные условия?
Даже фаззер может ряд проблем не выявить.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52

110. Сообщение от Тот_ещё_аноним (ok), 06-Июл-23, 22:49   +1 +/
Да, достойная замена, спасибо
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #107

111. Сообщение от Тот_ещё_аноним (ok), 06-Июл-23, 23:04   +1 +/
На релокацию не все согласны
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #84

112. Сообщение от Neon (??), 07-Июл-23, 03:58   +/
Какие то детские ошибки)
Ответить | Правка | Наверх | Cообщить модератору

114. Сообщение от Аноним (-), 07-Июл-23, 11:55   +/
> Она называется leftpad мы помним.

Вон там пример вообще байды на дотнете в новости :). Манагер паролей, рассылающий базы всему миру - прикольно.

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

115. Сообщение от Аноним (-), 07-Июл-23, 11:58   +/
> По идее, такое должны отлавливать статические анализаторы типа яндексовского gixy.

Для синтаксиса URL который навязан стандартами вот этого самого - vs типовые апи файлух - это не слишком пресное начинание. Мягко говоря. В урлах например есть способы кодировать символы как какой-нибудь %3f - и на этом тоже регулярно налетают.

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

116. Сообщение от Аноним (-), 07-Июл-23, 12:00   +/
> FTP

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

> Базы данных изобрели много много десятилетий назад. Но когда вместо мозгов юникс
> и сишка, то все на свете сразу файлом становится.

И бобби тэйблс так то уже не молодой чувак :)

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

117. Сообщение от Аноним (-), 07-Июл-23, 12:01   +/
> эвона как. ты, наверное, программист. оно и неудивительно, что софт жрёг гигабайты
> памяти, требует гигагерцы цпу, а тормозит при этом покруче, чем дум
> на 6502.

Потом бобби тейблс ему в базу /etc/passwd пропишет, дропнув попутно всякие беспонтовые сайтики. And we're back to square one :)

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

118. Сообщение от Аноним (-), 07-Июл-23, 12:04   +/
Фу ты какой немодный кэп, ты еще скажи про чрут, или боже упаси, контейнеры. Представляешь, если у меня в виде ФС для браузера есть только Downloads по сути - ну, окей, попробуй спереть из этого view /etc/passwd какой - при том что его в этом view чисто технически нет. Потому что для работы браузера это не требовалось :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #86

119. Сообщение от Аноним (-), 07-Июл-23, 13:38   +/
> Ну, для статического контента такую таблицу можно генерировать веб сервером автоматически
> из целевой директории.
> Например.

И как это улучшает вон то состояние дел? Типа вот там сервер на@бывается, а вот тут не будет? Зато появляется еще и база. С своим пониманием кучи спецсимволов чего доброго, если это скуль какой, так что накидав файлов с креативно оформленными именами можно слегка отредактировать базу попутно с дропом всяких ненужносайтов - чтоб даунтайм побольше :). Чочо, проипли список студентов за последний год - и их сайты тоже? :)

Можно конечно тупенький и быстрый key-value поставить - но файлуха примерно этим и является. А контент легитимно юзает ../../img/somthing/abc.jpg какое-нибудь на раз. И совсем взять и вырубить эту фичу ФС - ну, ок, куча контента сломается.

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

По-моему радикально огородить серв в чрут а лучше контейнер (т.к. чрут имеет ряд проблем) так то эффективнее решает задачу с меньшей возней.

> Ключевое что не должно быть копипаста данных из урлы в запрос к ФС.

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

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

120. Сообщение от Тот_Самый_Анонимус__ (?), 07-Июл-23, 15:37   +/
Видать в лагерь в первую смену попал, раз активность только в июле, да?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #60

121. Сообщение от Аноньимъ (ok), 07-Июл-23, 15:39   +/
Что говорит спецификация конкретно по случаю из новости?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26 Ответы: #141

122. Сообщение от Аноньимъ (ok), 07-Июл-23, 15:49   +/
>По-моему радикально огородить серв в чрут а лучше контейнер (т.к. чрут имеет ряд проблем) так то эффективнее решает задачу с меньшей возней.

Эффективнее как у эффективных менеджеров.

>спецсимволов

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

>Ну да, давайте в базу отправим.

ФС тоже база данных.
Ни в какую базу данных, тем более скульную, ненужно копипастить текст из запроса.

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

123. Сообщение от Аноним (-), 07-Июл-23, 16:01   +/
> бедный Дейкстра. куда уж ему, недоучке, до Великих Сишников с Профильным Образованием…

Дейкстра хотя-бы ос которую сам и написал, хотя-бы для себя пользовался? И вирта туда же :). Поразвелось теоретических обучальщиков как системщину правильно делать - ведь гадить на плечи на которых стоишь так просто.

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

124. Сообщение от Аноним (-), 07-Июл-23, 16:02   +/
> Двачую адеквата. В IT сегодня вкатывается каждый второй после ютуб курса питон
> за час. Профессионалов реально нет, наша компания уже год не может
> найти специалиста (компания в ЕС если что).

А какого плана специалисты вам нужны и что за компания? Сайт у нее есть?

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

125. Сообщение от Аноним (125), 07-Июл-23, 16:08   +/
> В начале нулевых я с третьего курса забил, поскольку, несмотря на именитость
> ВУЗ-а, с CS было печально. Физика и математика, да, были на
> уровне, но к тому времени я понял, что физика мне не
> очень интересна, а нужные области прикладной математики я и самостоятельно доучу.

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

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

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

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

126. Сообщение от Аноним (-), 07-Июл-23, 19:16   –1 +/
> Вот я и говорю, типичный сишный маразм.

Этот маразм сам по себе ортогонален сям и происходит из API файловых систем. Даже в HTML можно пути указывать как ../img/abc.jpg - и это валидный синтаксис. Сервер должен его отработать. Вот прям так, с вылезанием на уровень вверх - если права на это есть.

> Спек конечно же стоит прочитать, только в спеке будет undefined behaviour через
> абзац, а double не меньше float который может быть любого размера

Казалось бы при чем тут апи файлух с его дурацкостями? Это апи и у остальных такое же. А либы могут взять как эти так и те.

> Ну и конечно же неотлавливаемые переполнения целых чисел.

А у кого оно отлавливаемое без жесткого хита в перфоманс? :)

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

127. Сообщение от Аноним (-), 07-Июл-23, 19:26   +/
> Эффективнее как у эффективных менеджеров.

Решает проблему - быстро, сердито, даже без правки кода - и хитов в перфоманс. Есть довольно большая разница - лукапать на каждый запрос базу или нет. Хотя если вы эффективный менеджер компании интел и вам надо продажи новых процов толкать, конечно, отсутствие лукапа в базу это безобразие, как же новые процы то продавать?!

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

Теоретически да. Практически как видим семантика операций ФС - и ее активное использование контентом и проч - создает определенные риски. А бредни с базой создают неиллюзорный перфоманс хит. Докупать серваки во имя луны - ну такое себе.

> ФС тоже база данных.

Да. И лукап 2 баз вместо 1 перфоманса уж точно не добавит.

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

Ну а в какую базу вы предлагали это все?

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

128. Сообщение от Аноним (128), 07-Июл-23, 19:42   +1 +/
> Этот маразм сам по себе ортогонален сям и происходит из API файловых систем. Даже в HTML можно пути указывать как ../img/abc.jpg - и это валидный синтаксис. Сервер должен его отработать. Вот прям так, с вылезанием на уровень вверх - если права на это есть.

Вот только этот путь не имеет отношения к файловой системе сервера. Это исключительно УРЛ-путь и обычно обрабатывается самим браузером, а на сервер приходит уже конечный вариант пути.

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

129. Сообщение от Аноньимъ (ok), 07-Июл-23, 20:11   +1 +/
> Этот маразм сам по себе ортогонален сям и происходит из API файловых

Ничего такого в апи файлух нет.

> Сервер должен его отработать.

Должен, и если запрос валидный должен отдать ресурс, а если невалидный, должен послать нафиг.

Так же как ФС пошлет вас если вы сделаете запрос на несуществующий или ограниченный правами файл.

>Казалось бы при чем тут апи файлух с его дурацкостями?

Мы тут вообще то говорили о спеках к файлу конфигурации.

> А у кого оно отлавливаемое без жесткого хита в перфоманс? :)

Главная страшилка сишников. Прямо жёсткий ужасный хит п е р ф о м а н с а!
Правда это проверка одного флага ЦП после операции.
Ну ладно, а опциональную то проверку можно, как в проклятом расте?

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

130. Сообщение от Аноньимъ (ok), 07-Июл-23, 20:22   +1 +/
>Решает проблему - быстро, сердито, даже без правки кода - и хитов в перфоманс

Дальше можно не читать. Шиза настоящая.
Секономить пару тактов процессора на проверке валидности запроса.
Ах ну и главно БЕЗ ПРАВКИ КОДА.
Жесть какая.

> Ну а в какую базу вы предлагали это все?

Ещё раз, ни в какую. Задача сервера распарсить запрос, проверить его на валидность, и совершить соответствующие запросу действия, например передать ресурс из файла на диске, из скул сервера, Аллаха или Сатаны. Без разницы вообще откуда.

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

131. Сообщение от Аноним (131), 07-Июл-23, 21:03   +/
> Дальше можно не читать. Шиза настоящая.
> Секономить пару тактов процессора на проверке валидности запроса.
> Ах ну и главно БЕЗ ПРАВКИ КОДА.
> Жесть какая.

Всего лишь практическая и практичная эксплуатация реально существующего софта в реальном мире. Не уповая на сферический идеальный софт в вакууме - которого не бывает - а подготовившись к парированию факапа "в случае аварии". А вы можете и огнетушитель в авто с собой не брать, ведь вы же супермен, с вами же ничего такого случиться не может?! И переборки в кораблях - глупости, нормальный капитан не должен пробоины получать!!!111. Представляете, вон то зарубает не только известные - но и целые классы НЕизвестных вулнов и минимизирует урон если какой-то вулн все же нашелся. Но возможно вам нравится когда у вас хаксоры тусят, конечно, и вы все для их удобства организуете. Ну там доступнуе диры с системными утилитами и прочим, уж конечно легитимный вебсерв жить не может без запуска шелла или там ls какого в директории.

> Ещё раз, ни в какую. Задача сервера распарсить запрос, проверить его на
> валидность, и совершить соответствующие запросу действия, например передать ресурс из
> файла на диске, из скул сервера, Аллаха или Сатаны. Без разницы вообще откуда.

А таки у серверов статики есть режим отдачи ФС по сути 1 в 1. Вплоть до автоиндекса, если это разрешить. Ну а вот выход за www root это такое довольно отдельное безобразие при этом.

ЧСХ вон там утверждается что это вообще чуть ли не by design. Но даже если и - я бы сказал что это довольно хреновый дизайн и пофиксить такое поведение когда alias с / и без / две большие разницы.. эм.. это довольно неожиданно для многих юзерей и ведет к факапам. Де факто это вообще ошибка конфигурации с документированной хренью была. Зачем хрень и почему похожа на вид на НеХрень - вопрос интересный.

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

132. Сообщение от Аноним (28), 07-Июл-23, 21:07   +1 +/
Если ты когда-либо читал документацию на большие системы типа Nginx, ты бы заметил, что там кроме выкрутасов с location расписана так же масса других разнообразных вещей. Запомнить вообще всё может только ChatGPT или человек с синдромом саванта. Люди — irl, а не из фантазий опеннетчиков — невнимательны, забывают, спешат, устают, подвержены стрессу и допускают ошибки. Данное поведение превращает обшибку в потенциальную катастрофу. И претензия не в том, что нужно что-то читать, а в том, что детали, которые могут показаться незначительными при чтении, имеют далеко идущие последствия, что делает Nginx недружелюбным к пользователю. И это даже не проблема Nginx как такового, а системная проблема софта, спроектированного и написанного в тот период времени. По моим ощущениям, только в последнюю декаду при проектировании ПО стали обращать больше внимания на интерфейс человек-компьютер и воспитывать культуру безопасного дефолтного поведения.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #103

133. Сообщение от Аноньимъ (ok), 07-Июл-23, 22:19   +1 +/
>[оверквотинг удален]
> А вы можете и огнетушитель в авто с собой не брать,
> ведь вы же супермен, с вами же ничего такого случиться не
> может?! И переборки в кораблях - глупости, нормальный капитан не должен
> пробоины получать!!!111. Представляете, вон то зарубает не только известные - но
> и целые классы НЕизвестных вулнов и минимизирует урон если какой-то вулн
> все же нашелся. Но возможно вам нравится когда у вас хаксоры
> тусят, конечно, и вы все для их удобства организуете. Ну там
> доступнуе диры с системными утилитами и прочим, уж конечно легитимный вебсерв
> жить не может без запуска шелла или там ls какого в
> директории.

Предохраняться конечно же нужно.
Что не отменяет безумности подхода копипаста текста из http запроса в запрос к БД.
Как бы речь о том и идет. Что нужно как бы проверять то что клиент из Индии прислал в запросе.

> А таки у серверов статики есть режим отдачи ФС по сути 1
> в 1. Вплоть до автоиндекса, если это разрешить. Ну а вот
> выход за www root это такое довольно отдельное безобразие при этом.

Безобразие.

> ЧСХ вон там утверждается что это вообще чуть ли не by design.
> Но даже если и - я бы сказал что это довольно хреновый дизайн

Хреновый.

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

Интересный.

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

134. Сообщение от Аноним (134), 07-Июл-23, 22:55   +/
> Предохраняться конечно же нужно.

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

> Что не отменяет безумности подхода копипаста текста из http запроса в запрос к БД.

В этом месте я могу вернуть ваши слова и заявить что хорошая БД не хуже хорошего сервера и не должна вестись на фигню. Некоторые key-value даже сожрут произвольный URL как key и не возымеют от этого проблем. Однако один и тот же URL можно представить довольно большим числом разных способов - потому что стандарт так написан - так что даже так можно откушать приколов. Конечно можно порассуждать о библах и всем таком. Но таки - приколы такого плана были и есть. И рядом - тоже. Типа вон тех request smuggling когда манипуляцией с запросом реквест подшивается к вообще кому-то постороннему. Например потому что фронт и бэк парсят немного по разному.

А запрос к базе на реквест статики таки булшит и RPS угрохает. Так что "докупите серверов".

> Как бы речь о том и идет. Что нужно как бы проверять
> то что клиент из Индии прислал в запросе.

Да никто не спорит что нужно - но тут вообще документированное поведение было так то. То что оно не лучшее на свете и ведет к ололо - ну, окей, допустим.

> Безобразие.

Но вон там это вообще фичой было. Просто довольно неожиданной для некоторых.

> Интересный.

Авторы нжинкса вообще местами странноватые вещи делали. Однако остальные делают не менее странные вещи. А иногда и более. Если так посмотреть, на глупые грабли встают практически все HTTP серваки. Сочетание семантики ФС с структурой контента и запросов это такое сочетание которое вообще довольно трудно реализовать секурно во всех позах. Особенно если еще наставить фронтов, бэков, в потом окажется что они одно и то же немного по разному понимают, ...

На мой вкус я б фильтровал ../ как элемент путей в (уже декодированых) урлах - но контент тогда сломается много где.

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

135. Сообщение от Аноним (-), 08-Июл-23, 00:01   +2 +/
> Когда-то в инструкции по эксплуатации автомобиля писали, как регулировать зазоры клапанов

ЧСХ водители с удовольствием послали эти автомобили туда где не светит солнце при первой же возможности. Потому что если кто хотел водить авто - это совсем не значит что он хотел загорать под жигуленком вместо поездки на шашлыки. Автомобили покупают не для того чтобы с клапанами сношаться.

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

136. Сообщение от Аноним (-), 08-Июл-23, 00:02   –1 +/
> Вот только этот путь не имеет отношения к файловой системе сервера. Это
> исключительно УРЛ-путь и обычно обрабатывается самим браузером, а на сервер приходит
> уже конечный вариант пути.

Эта семантика взята именно из ФСовских апи. Так что насчет не имеет отношения - булшит однако. Особенно для сервера статики.

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

137. Сообщение от Аноним (-), 08-Июл-23, 00:12   +/
> Ничего такого в апи файлух нет.

А почему тогда синтаксис вида cd ../../dir - работает и без всяких вебсерверов вообще? :)

> Должен, и если запрос валидный должен отдать ресурс, а если невалидный, должен послать нафиг.

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

> Так же как ФС пошлет вас если вы сделаете запрос на несуществующий
> или ограниченный правами файл.

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

> Мы тут вообще то говорили о спеках к файлу конфигурации.

А на него были спеки? И как они звучали?

> Главная страшилка сишников. Прямо жёсткий ужасный хит п е р ф о м а н с а!

Тормозной софт мало кому нужен. Особенно критичный к скорости. Типа сжатия, крипто, кодеков, да даже, блин, вот тормозной вебсерв для статики мало кому вперся.

> Правда это проверка одного флага ЦП после операции.

Да, а теперь представь себе этот шит в каком-нибудь крипто. После каждого действия. При том что оно из этих действий целиком и состоит. Вся алгоритмика и просядет в разы. И тут вон те пойдут покупать в разы больше серверов, под ту же нагрузку. Аж два раза. А еще у них там энтерпрайзные SSD сейчас - где IO измеряется миллионами IOPS, сетевки на добрых 100Гбит если не более и проч. И тут ты такой якорь вбил. И скорость в разы - упс. И много кому такой софт вопрется? :)

> Ну ладно, а опциональную то проверку можно, как в проклятом расте?

А оно там только в дебаг режиме и работает. Если из сей такое хочется сделать - соберите с asan и ubsan, получите примерно такого же уродца. С тем же хитом перфоманса. Ловить переполнение будет, и даже левые обращения к памяти и out of bounds всякий :). Только вот превратить си в какую-то яву - ну, круто, да. Если в дебаг режиме. А если в проде - такое себе.

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

138. Сообщение от пох. (?), 08-Июл-23, 00:47   –1 +/
"Только для них не ставят псевдонимы."
Именно.
Их ставят как раз для прямого доступа к файлам (обычно это что-то большое) лежащим в стороне от вебни.

Поэтому и стоит такой случай проверять и фейлиться или хотя бы выдавать предупреждение что оно может работать совсем не так как показалось.

Но нет. Изобретатель nginx изобретал его под свой локалхост и больше ни под что. А все дальнейшие улучшизмы не смеют затрагивать корней.

Поэтому пока "if is evil" и тому подобная мерзость не будет заменено на "мы переработали структуру конфига и им снова можно пользоваться без чорной магии" - надо просто выбирать другой софт. И уже много-много лет назад.

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

139. Сообщение от Аноним (128), 08-Июл-23, 06:12   +/
Она не взята, она всего лишь может совпадать. От того, что сайт переехал на винду или на молодёжно-экспериментальную ОС с базой данных вместо привычной файловой системы, - УРЛ сайта никак не изменится. Но даже если на сервере стоит линукс, эти имена каталогов и файлов не обязаны присутствовать на сервере.

И уж конечно же семантика УРЛ никак не подразумевает выхода за границы корня сайта и возможность получения любого файла с сервера. Ибо - ещё раз - УРЛ не имеет никакого отношения к файловой системе сервера.

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

140. Сообщение от пох. (?), 08-Июл-23, 18:20   –1 +/
Дружище, не хочу тебя огорчать, но в роиськом вузе не расскажут что вообще такое этот рид с соломоном и с чем их едят - требуемую для понимания математику не знают даже преподаватели универа. И на мехмате, а не на вмк. (те кто знали - вероятно, давно в MIT преподают, или пиццей торгуют)

И нет, сам ты это не узнаешь и не найдешь.

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

> Я знаю людей которые вообще в вузы не поступали а добились довольно многого в айти в интересных
> им областях.

вовремя съе...вшись с деньгами? Да, так можно.
А вот вовремя обнаружить что ВСЯ с-ка современная индус-трия считает raid6 по форумле с ошибкой (т.е. при восстановлении ничего восстановить не получится) - смог только человек с профильным образованием и при этом не продолбавший его нахрен.

И непоступая в вузы - ХРЕН ты это сможешь повторить.

И поступив в заборостроительный универ - ТОЖЕ не сможешь.

Этому не учат на кратких курсах яндекс-такс...ой, вайтивойти.  Слишком много надо иметь предварительных знаний чтобы понять предмет. А он - один из тыщи.

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

141. Сообщение от пох. (?), 08-Июл-23, 18:22   +/
Что отвалите от нас с вашим частным случаем, мы тут глобальные проблемы решаем.

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

142. Сообщение от Аноним (142), 10-Июл-23, 13:18   +/
> вообще такое этот рид с соломоном и с чем их едят

Ну да, пожалуй.

> - требуемую для понимания математику не знают даже преподаватели универа. И
> на мехмате, а не на вмк. (те кто знали - вероятно, давно в MIT преподают,
> или пиццей торгуют)

Как-то так. В российских вузах как максимум дадут грузню обшего вида, нужную в таком виде примерно нигде. Как ЭТО переделать на реально существующие компьютеры, работу с битами или байтами, в виде актуальном для компьютеров, МК и проч - придумайте сами. Если не спятите. Потому что надо входить в несколько разных миров под специфичным углом, понимая специфику их всех, препы это ессно не умеют и на ваши вопросы не ответят. А уж какие "практические" параметры в реальных задачах могут волновать - никто не скажет, т.к. в душе не е...т как оно. Вот если курс CS у MIT или кого-то подобного укачать, да еще сорцами по интернету затариться - тогда, конечно...

> И нет, сам ты это не узнаешь и не найдешь.

Я об этом не знал, поэтому случайно накодилось что-то такое, это фимрвар в уарт так:


LinkMon V0.2:
--------- current ----------
Bit Errors          0000001E
Byte Errors         00000016
------- pkt stats ----------
BitExact            00000064
RS Correctable      0000002E
RS Eras+Correctable 00000010
Uncorrectable       00000033

Что означает RS ты наверное догадался. Странноватая статистика связана с специфичной технологией linecoding.

> Этим и отличается нормальное университетское образование от дерьма которым тебя кормят.

Передо мной открыт весь мир знаний...

> вовремя съе...вшись с деньгами? Да, так можно.

А ты можешь подождать пока их отожмут или вообще отправят в отпуск на курорт.

> А вот вовремя обнаружить что ВСЯ с-ка современная индус-трия считает raid6 по
> форумле с ошибкой (т.е. при восстановлении ничего восстановить не получится) -
> смог только человек с профильным образованием и при этом не продолбавший
> его нахрен.

Я даже страховым полисам не очень верю, цуко, поэтому такие вещи внаглую тестирую, с пониманием проблематики, пруф выше. Оно явно работает :)).

> И непоступая в вузы - ХРЕН ты это сможешь повторить.

Ну как бы совсем без вузовских знаний по теме душно будет. Можно конечно либу как дятел вызвать но ни к чему хорошему это не ведет без понимания what's going on и реальных свойств этой штуки. В принципе теперь я могу кастомные FEC кроить под задачу и linecoding менять.

> И поступив в заборостроительный универ - ТОЖЕ не сможешь.

Ну дык там не расскажут про это. А вот курсы CS от того же MIT и еще нескольких мощных унивров - тупо валяются онлайн, качай да читай, куле.

> Этому не учат на кратких курсах яндекс-такс...ой, вайтивойти.  Слишком много надо
> иметь предварительных знаний чтобы понять предмет. А он - один из тыщи.

А таки - как ни странно я научился относительно осмысленно юзать эту технологию и даже запускать свои грязные лапки в ее кишки. Попутно зафиксив всякие overrun и negative array index любезно предоставленные Древними, лол, что довольно сыкотно для линка вывешенного джеппой прямо в воздух, куда может скунсить кто угодно чем угодно. И да, не спятить при анализе краевых условий кишков берлекамп-массея еще ухитриться надо.

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

143. Сообщение от пох. (?), 10-Июл-23, 13:25   +/
> Как-то так. В российских вузах как максимум дадут грузню обшего вида

да вот это как раз максимум и есть. Только реееедкий российский вуз дойдет до общего вида полей Галуа и как эти поля определяются.

А без этого общего - частный случай рида с соломоном ты просто не сможешь понять.
Только реализовать готовый алгоритм без понимания почему он именно вот такой (рад за тебя если ты так не делал)- ну да, ксоры-то все умеют. Это и привело в начале нулевых к неработающему в линуксе (а как выяснилось и вообще у всех, потому что копипастили уже даже не алгоритм а реализацию) raid6. Ашипочка вcpaлась в алгоритмик-то.

И вот внезапно у программиста Sun - хватило тогда образования (и интуиции) понять что таки ошибка, и где-то тут что-то не ладно, не может тут быть так все просто.

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

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

144. Сообщение от Аноним (-), 10-Июл-23, 14:09   +/
> 1) Если языку нужен статический анализатор (правила, не определены в самом языке)
> -- это плохой язык.

Ну конечно! Давайте вон тем раздолбайским апликушникам вкатим набор правил уровня MISRA или каких-нибудь авиаторов, посмотреть как им такое программирование вообще будет и насколько их хватит. One size fits all же, да? :)

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

145. Сообщение от Аноним (-), 10-Июл-23, 16:24   –1 +/
> Она не взята, она всего лишь может совпадать.

Не просто может - но и совпадает вот. И это вполне легитимная конструкция.

> От того, что сайт переехал на винду

В винде вон та семантика тоже IIRC работает.

> или на молодёжно-экспериментальную ОСс базой данных вместо
> привычной файловой системы,

Из такого припоминается всерьез разве что PalmOS - и сервировать с ЭТОГО файло никто всерьез и не пытался даже. Да и модно-молодежным этот кусок фэйла назвать сложно. Остальные вообще жесткая маргинальщина и вот это - их проблемы. Если они как-то вывесят posix api они должны будут ../ как-то обрабатывать. Не вывесят - останутся без софта под чудо ос, уж как им удобнее.

> - УРЛ сайта никак не изменится. Но даже если на сервере стоит линукс, эти имена
> каталогов и файлов не обязаны присутствовать на сервере.

Не обязаны - но в случае статики удобно. А каким-нибудь sendfile() еще и эффективно на уровне оси. Но вы конечно можете вместо этого с базы вытаскивать - заодно RPS и прогрузку 100500гигабит интерфейса сравним и оверхед администрирования. Можно даже с подъемом контейнера, это проще администрежа БД.

> И уж конечно же семантика УРЛ никак не подразумевает выхода за границы
> корня сайта и возможность получения любого файла с сервера.

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

> Ибо - ещё раз - УРЛ не имеет никакого отношения к файловой системе сервера.

В случае статики это 1:1 mappging зачастую. Так проще админить вот это все и сервировать просто и быстро. И таки та семантика - откровенно списана с posix api. Вероятно потому что сервера обычно на *никсах были.

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

146. Сообщение от Аноним (146), 10-Июл-23, 17:20   +/
> да вот это как раз максимум и есть. Только реееедкий российский вуз
> дойдет до общего вида полей Галуа и как эти поля определяются.

У россиян те вузы которые до Галуа доберутся - будут страшно далеки от рассказов как сие на base-2 математику нормально маппить, с какими параметрами и почему - так. И не расскажут про специфичные фокусы применяемые в реальных реализациях. А где расскажут про эти фокусы врядли даже заикнутся про Галуа.

И вот есть высокопарные теоретики которые ниипут как применять - и овощи которые ниипут как оно работает. Не понимаю как при этом хоть что-то осмысленно инженерить можно. Ну я вот хотел научиться этому и читанул CS какого-то амеровского вуза + сорцы, но российские ВУЗы тут не при чем.

> А без этого общего - частный случай рида с соломоном ты просто
> не сможешь понять.

Пожалуй. Поля галуа и математика в этом закоулке может порвать неподготовленный мозг. Но есть и особенности как выбрать параметры и ЭФФЕКТИВНО транслировать в возможности реальных процессоров. Этим особенностям в российском вузе не научат. А без этого - куда и как это знание?

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

Тем не менее, если не понимать вон то как и почему алгоритм делает останется полнейшей мистикой :). Часть "технических" лимитов и выбор параметров тоже оттуда следуют.

> даже не алгоритм а реализацию) raid6. Ашипочка вcpaлась в алгоритмик-то.

Да блин шит хэпенс. Как видишь я джентльменам (и себе) на слово не верю, вон та штука с статистикой честно гоняет end-to-end по воздуху и меряет фактическое состояние дел. Так я точно знаю работает оно или где.

> И вот внезапно у программиста Sun - хватило тогда образования (и интуиции)
> понять что таки ошибка, и где-то тут что-то не ладно, не
> может тут быть так все просто.

Допускаю что в энные времена они нанимали хороших спецов. Но успех проекта обеспечивается не только этим. Сани пролетели на общем управлении проектами имхо.

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

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

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


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

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




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

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