URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 134899
[ Назад ]

Исходное сообщение
"В OpenBSD запретили использование нулевых символов в shell-скриптах"

Отправлено opennews , 25-Сен-24 13:14 
Тэо де Раадт (Theo de Raadt) добавил в ветку OpenBSD-Current, на базе которой будет сформирован релиз OpenBSD 7.6, изменение, запрещающее использование символа с нулевым кодом в shell-скриптах, обрабатываемых  командным интерпретатором ksh, используемым в OpenBSD по умолчанию. Наличие нулевых символов в скриптах теперь будет приводить к завершению выполнения с выводом ошибки, за исключением из размещения среди данных в конце файла, прикреплённых  после кода...

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


Содержание

Сообщения в этом обсуждении
"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 13:14 
Это было единственное применение.

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено pavlinux , 25-Сен-24 17:46 
Чо?

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Изя , 25-Сен-24 13:18 
Жизни нулевых символов важны

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 15:04 
Нельзя отбрасывать нулевые начальные значения.

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 27-Сен-24 18:14 
А при чем здесь это?

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 13:20 
> позволит исключить неопределённость поведения, связанную с обработкой нулевого символа в коде, написанном на языке Си и использующем строки, нулевой байт в которых задействован для индикации конца строки.

Типи-кал сишка.
Впрочем, ничего удивительного.


"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 13:28 
Си здесь ни при чём. Си использует нуль-терминатор для конца строк. Кто виноват в том, что shell их обрабатывал неверно? Явно не Си.
Советую вам использовать rust с автоматической расстановкой free(). Так безопаснее. А если захотите обойти боровчекер, используйте стандартный счётчик ссылок: std::sync::Arc. Ведь раст - это ручное и безопасное управление памятью!
(Да, я буду теперь делать набросы, как делают подобные набросы любители ржавчины.)

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 13:36 
М... а собственно где наброс?
Ты практически все правильно сказал!
Хочешь набрасывать - старайся получше.

PS: а чего ты сразу раст приплел? Я вообще за по настоящему безопасные языки вроде хаскеля. И всякие ваши расты не нужны.


"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 13:40 
Rust программисты говорят о безопасности (работы с памятью), но редко пишут о том, каким образом она организуется. У такого подхода есть свои достоинства и недостатки. А фанатики (не вы конкретно) преподносят rust как панацею. Пусть люди знают за счёт чего rust такой безопасный.

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 13:41 
> но редко пишут о том, каким образом она организуется

По крайней мере, здесь, на opennet.


"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 19:32 
> Пусть люди знают за счёт чего rust такой безопасный.

Rust безопасный за счёт сильной статической типизации, move семантики (везде, а не здесь перемещаем, а здесь рыбу заворачивали) и по-настоящему умных compiletime указателей (а не refcount в runtime, как в C++).


"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 13:42 
Вот я "набросил", а теперь захотел сам на rust прогать. Простите меня, Си-традиционалисты...

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 14:27 
Так чего в итоге не попрограммировал, а только захотел?

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 20:05 
Уже расхотел. Деды вразумили.

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Паскалька , 25-Сен-24 16:47 
ErrorSoft, Сишка отличный язык.

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 22:03 
>Rust программисты говорят о безопасности (работы с памятью)

А это не правда?
>но редко пишут о том, каким образом она организуется

Такое пишут в документации на язык. В любом случае способ организации влияет на безопасность?
>У такого подхода есть свои достоинства и недостатки

Свои достоинства и недостатки есть даже у бутерброда и купания в ванной. Определись, что конкретно ты хочешь сказать, а не лей воду.
>А фанатики (не вы конкретно) преподносят rust как панацею

От чего? От поноса? Нет. От уменьшения проблем с ошибками памяти? Да. Читай, что такое панацея.

Вот этот вот скользкий релятивистский подход "ну вот панацеи нету пук, всё относительно, свои плюсы/минусы" такой мерзкий.


"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 23:33 
Бутерброд вкуснее ванны.

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 27-Сен-24 16:15 
> Вот этот вот скользкий релятивистский подход "ну вот панацеи нету пук, всё относительно, свои плюсы/минусы" такой мерзкий.

Вот-вот, более точно и более мерзко: "ну вот панацеи нету, 100% ошибок исправить не можете, только 70%, а потому и не нужно". Т.е. у них или 100% или "тогда нинужна".


"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 27-Сен-24 16:18 
Вдогонку. А как в их любимые плюсы захотели внести часть этих ранее "нинужных" приемчиков, так и завопили - "теперь и у нас есть (будет)! а ваше г - теперь точно нинужна!"

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 13:21 
Ничоси Тео жжет!
Просто невероятный прогесс.
А, простите, дрова на бзде будут? Или не при нашей жизни))?

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 14:10 
Ну так пиши, или всё за тебя делать?

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 14:28 
Корпик что то не хочет просто так тратить время на ненужную ос.

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 15:40 
А на нужную он прото не тянет.

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 14:44 
Попробуйте в Вашем офтопике скопировать файл в другой файл командой copy. Затем сравните. Разницу ощутили?

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 17:47 
При чем тут офтопик (который из?) и копирование файлов?

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 15:05 
Там еще и CVS. Какие еще могут быть ожидания

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Минона , 25-Сен-24 13:52 
Тео красавчег!

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 15:01 
Ага был тут один деятель который ФБР и АНБ послал в интервью Такеру. Так теперь этот деятель пузыри пускает в Париже типа он не хотел это чудовищная ошибка и на задних лапах теперь стоит.

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено 1 , 25-Сен-24 15:05 
Ну он же француз, значит поделом.

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 15:13 
В том то и дело что послал он ФБР и АНБ за их наезд когда он был в США. Но после интервью они на него наехали за огласку даже несмотря на то что он не гражданин США и вообще не в США. А Тео так то ваще Канадец.  

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 15:22 
Правильно, нефиг грязную работу у себя дома делать.
Если надо высечь непослушных — то в специально отведённых для этого местах.

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 15:11 
> в интервью Такеру

Нашли к кому апеллировать.
Для меня оно не авторитет.


"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 26-Сен-24 01:51 
Это просто история высказываний Дурова до того, как к нему применили --force.

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 16:05 
>в интервью Такеру

Карлсон который? :) Ахахахахаха


"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 16:51 
Так Карлсоны все крутые, разве вы незнали? :D

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено 1 , 25-Сен-24 17:04 
Сын Карла же !

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 26-Сен-24 01:53 
> Так Карлсоны все крутые

Потому что в самом расцвете сил!


"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено anonymous , 26-Сен-24 11:21 
Главное что в меру упитанные.

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 26-Сен-24 13:12 
Который живёт на крыше. Мужчина в самом расцвете сил.

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 17:22 
>Отмечается, что подобное изменение позволит исключить неопределённость поведения, связанную с обработкой нулевого символа в коде, написанном на языке Си

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

И как они с этим справились? Теперь появился ещё один нюанс, о котором нужно помнить.
>Наличие нулевых символов в скриптах теперь будет приводить к завершению выполнения с выводом ошибки, за исключением случаев их размещения среди данных, прикреплённых в конце файла следом за кодом

Типичный си/c++. Внесёшь пару небольших правок, и всё развалится. А потом сиди и думай, почему правка начала файла влияет на его конец


"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 26-Сен-24 02:56 
> Типичный си/c++.

это не типичный си, а это типичный неосилятор.


"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено bOOster , 25-Сен-24 17:28 
А 255 символ запретили? 30 лет назад, еще под MSDOS, переименовали утилиту переворота экрана в 255 символ и вставили в autoexec.bat
Хозяин компа уже психовать начал и монитор переворачивать :)) Показали ему прикол...

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 19:41 
0xff    0x00a0    #NO-BREAK SPACE

Надо будет запомнить


"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено glad_valakas , 28-Сен-24 05:48 
лучше запретить NOP и RETF/RETN (не знаю какие у них коды в x86_64).
первым выравнивают шеллкоды, второе против ROP.
но противник хитер и коварен, когда IDS и WAF начали определять в потоке NOP-NOP-NOP то шеллкодописатели стали заменять это на мусорные наборы инструкций, которые тоже делают ничего.

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 19:51 
>Изучение обработки нулевого символа в различных оболочках показало, что  ...

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


"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 21:43 
Учитывая, что пользоватей у ksh даже меньше, чем у OpenBSD, новость ни о чём.

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 22:05 
у меня на макбуке с м1 стоит опенбсд и прямо с него я пишу этот коментарий
а ты иди телеметрию отправь

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 23:04 
Опенбсд понятно, шелл у тебя какой?

> а ты иди телеметрию отправь

Как это «иди»?! Я-то думал она сама отправляется, без моего участия. А как же автоматизация?


"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено bOOster , 26-Сен-24 11:48 
> у меня на макбуке с м1 стоит опенбсд и прямо с него
> я пишу этот коментарий
> а ты иди телеметрию отправь

месье знает толк в извращениях.


"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено pavlinux , 26-Сен-24 12:31 
>  у меня на макбуке с м1 стоит опенбсд и

Только настоящий Васян будет на феррари возить цемент


"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 26-Сен-24 12:42 
Причем в воображении. Так как никакого мака у него нет.

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено bOOster , 26-Сен-24 13:36 
Какая очередная чушь от оголтелых. OpenBSD 7.1-> замечательно работает с m1, даже с идентичным Linux ускорением графики. Так как пользует слой совместимости с DRM драйверами от Linux.
А уж по реальной безопасности всей системы, Linux тут даже близко не валялся.

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 26-Сен-24 15:43 
>А уж по реальной безопасности всей системы, Linux тут даже близко не валялся

Кто нить проверял? Или Тео мамой поклялся, а ты и поверил?


"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 26-Сен-24 17:13 
> по реальной безопасности всей системы, Linux тут даже близко не валялся

А вот это правда. ТеоБСД настолько неуловима, что действительно никто не будет морочиться её ломать. Чинить, впрочем, тоже мало у кого есть желание.


"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено bOOster , 26-Сен-24 18:55 
>> по реальной безопасности всей системы, Linux тут даже близко не валялся
> А вот это правда. ТеоБСД настолько неуловима, что действительно никто не будет
> морочиться её ломать. Чинить, впрочем, тоже мало у кого есть желание.

Если дикие племена людоедов, абсолютно необразованные не знают что земля круглая, то это не означает что земля плоская. Просто в голове пусто.. Ветер...


"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 26-Сен-24 20:12 
К счастью, OpenBSD широко известна, в том числе и смешными багами вроде падений ядра от echo в консоль из-под юзера. Ну и конечно же заявлениями Тео об особой безопасности системы, столь же смелыми, сколь далёкими от реальности. Но как я уже говорил, вреда особого от этого нет по причинам крайней неуловимости.

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено pavlinux , 20-Ноя-24 21:07 
> Какая очередная чушь от оголтелых. OpenBSD 7.1-> замечательно работает с m1,

OpenBSD работает даже на кипятильнике и утюге, с теми же GFLOPSами как и твой MacBook.

> даже  с идентичным Linux ускорением графики. Так как пользует слой совместимости  с  DRM драйверами от Linux.

Чо там ускорять? 2.5 приложения?  И у меня GeForce RTX 4080 c родным дровами, а не обрезанные из ядра

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

Кому ты нах... нужен, ломать твой локалхост на макбуке с опенбзд  



"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено _ , 27-Сен-24 00:53 
>>  у меня на макбуке с м1 стоит опенбсд и
> Только настоящий Васян будет на феррари возить цемент

Ну как по мне яббло с М1 - цемент... да ещё и с запахом и подозрительного цвета :)


Кучу народу знаю _тут_ кто взял яббло нормальное, на штеуде, и накатил божественную ... вот такие вот гримасы капитализьЪму! :))))


"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 25-Сен-24 22:05 
Вот если бы все усилия Тео портировать в OpenSolaris, даже можно было бы пользоваться.

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Golangdev , 26-Сен-24 12:12 
> ksh

Всегда удивляло, почему каждый васянодистр (Ubuntu, OpenBSD, Apline, ...) нак и норови использовать что-либо отличное от bash. Удобство для администрирования просто колоссальное (нет).


"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено pavlinux , 26-Сен-24 12:35 
- Напиши по три ключевых отличия между bash. ksh, сsh, zsh, ash  ?
- Расскажи как ты юзаешь глобальные переменные SECONDS и LINENO ?
- Одной строкой вычисли сумму эл-тов массива (башизм) ?
- Для чего юзаешь PS3 и PS4 ?

Если переименовать бинарь /bin/ksh в /bin/bash ты даже не вдуплишь разницы :D Одминчег



"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 26-Сен-24 13:16 
Вот про массивы, да, в ash их не оказалось. Пришлось изращаться через Awk.

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 27-Сен-24 16:39 
Для командного интерпретатора массивы это роскошь, необязательный функционал, лишняя сущность.

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Golangdev , 26-Сен-24 14:51 
Ты не понял. Я говорю что такое разнообразие шелла-по-умолчанию плохо. Затрудняет разработку скриптов.

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 26-Сен-24 14:59 
Тень python простирается всё дальше и дальше и оставляет для оболочек всё меньше и меньше актуальных задач.
Почему то, приходит на ум сцена охоты Каа на Бандерлогов.

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 26-Сен-24 18:56 
Заечм в шеле Питон? Не понятно.

"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено _ , 27-Сен-24 01:01 
Если ваша шелл-портянка занимает больше чем пару-тройку экранов - возможно и вправду надо уже переписать на ... особенно если пошли структуры данных и сложные алгоритмы ... но на чём переписать я вам не посоветую :( Возможно питон. Возможно хрен-с-морковкой. Тут сами смотрите...

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


"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 27-Сен-24 23:53 
> сделайте хотя-бы шелловские пайпы в питоне

Вот уж чего, а этого добра в питоне хватает. Вплоть до синтаксиса. Но откуда ж портянщику знать?


"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 26-Сен-24 17:16 
> башизм

Слово-маркер латентных мазохистов. POSIX shell мёртв. Пишите на баше, будете меньше ошибок пороть и процессов плодить. И никогда не пишите на любом шелле скриптов длиннее одного экрана. Возьмите язык программирования, всем будет только легче.


"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено Аноним , 26-Сен-24 18:55 
Вместо командного интерпретатора использовать язык программирования глупо, оно не нужно и будет только мешать.

>POSIX shell мёртв.

С какого перепугу.


"В OpenBSD запретили использование нулевых символов в shell-с..."
Отправлено _ , 27-Сен-24 01:10 
>> башизм
> Слово-маркер латентных мазохистов

Не плакай снежинка! :)

> POSIX shell мёртв.

... а я ещё нет! Те кто был с нами, смотрят нам в след... Ведь POSIX shell мёртв - а я ещё нет! (С) Упорыш.

:)

> Пишите на баше, будете меньше ошибок пороть и процессов плодить.

Пиплы, да муйня это всё! Пишите хоть на 1Скрипт, токо шебанг корректный ставьте! :)

> И никогда не пишите на любом шелле скриптов длиннее одного экрана.

Устройся на работу отрок. Один экран это всё же маловато. Но и 5К-лок - тоже перебор :)

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

Нуууу ... вот дай тебе Си так ти и 8- себе отстрелишь :) Забыли для чего шелл делали? (прада вс равно - не помогло ;-)))