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

Исходное сообщение
"Применение невидимых unicode-символов для скрытия действий в JavaScript-коде"

Отправлено opennews , 10-Ноя-21 12:43 
Следом за методом атаки Trojan Source, основанном на применении Unicode-символов, меняющих порядок отображения двунаправленного текста, опубликована ещё одна техника внедрения скрытых действий, применимая для кода на языке JavaScript. Новый метод базируется на применении unicode-символа "ㅤ" (код 0x3164, "HANGUL FILLER"), который относится к разряду букв, но не имеет видимого содержимого. Unicode-категория, в которую входит данный символ, разрешена начиная со спецификации...

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


Содержание

Сообщения в этом обсуждении
"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено пох. , 10-Ноя-21 12:43 
Ну вот, счастья и привалило. Обезьянки ведь никак не могли жить без не-английских символов в именах переменных? Ну и нате вам пачку невидимых до кучи.

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


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено 41 , 10-Ноя-21 12:46 
в довесок стоит отметить запятую-разделитель после последнего элемента структуры — так же сомнительная фича для ленивых со-стековерфлоу-копипастеров

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 15:26 
Она есть в других языках тоже и применяется чтобы дифф уменьшать при добавлении новых полей. Но в целом я тоже против этого.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено kai3341 , 10-Ноя-21 17:01 
Trailing запятая-разделитель как раз удобнейший паттерн, появившийся сначала далеко не в JS

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 12:47 
хорошо что ты всё понимаешь и всегда объяснишь обезьянкам как им следует поступать
чтобы они без тебя делали?

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 12:50 
🐧 ⋆ 🐼  🎀 П̷р̷о̷с̷т̷о̷ ̷т̷ы̷ ̷н̷и̷ч̷е̷г̷о̷ ̷н̷е̷ ̷п̷о̷н̷и̷м̷а̷е̷ш̷ь̷.̷ 𝐈𝐧 𝐫𝐞𝐚𝐥 𝐥𝐢𝐟𝐞 𝕌𝕟𝕚𝕔𝕠𝕕𝕖-𝕥𝕖𝕩𝕥  н⃣   е⃣   з⃣   а⃣   м⃣   е⃣   н⃣   и⃣   м⃣  🎀  🐼 ⋆ 🐧

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено InuYasha , 10-Ноя-21 13:12 
Точно, как без этого первоклаш..курсникам математику объяснять?
2🐭 + 8🦊 = 🐵
🐵*🐷 + 🦂 = 🐔🐔🐔
великолепие же!

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Нанобот , 10-Ноя-21 13:21 
log(😅)=💧log(😄)

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено владик , 10-Ноя-21 22:22 
блин чувак ты круто придумал

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Нанобот , 11-Ноя-21 10:52 
> блин чувак ты круто придумал

вообще-то это не я, это кто-то в интернетах придумал


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 13-Ноя-21 02:30 
благородный ты чувак

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено BLM , 14-Ноя-21 01:26 
✊🏿

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено OpenEcho , 10-Ноя-21 19:58 
iconv -c -f utf-8 -t ascii -o human-text.txt

и вас нету...


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Онаним , 11-Ноя-21 15:16 
И г-код не работает, потому что макака навставляла разных emoji в одинаковые имена переменных.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено iPony129412 , 10-Ноя-21 12:56 
А gcc уже умеет в переменные с emoji? 🤨
Когда последний раз тыкал своей палочкой палочкой - не получалось.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено 41 , 10-Ноя-21 13:05 
> Когда последний раз тыкал своей палочкой палочкой - не получалось

извращенец


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним84701 , 10-Ноя-21 13:06 
> А gcc уже умеет в переменные с emoji? 🤨
> Когда последний раз тыкал своей палочкой палочкой - не получалось.


cat hello.c && gcc hello.c && ./a.out

#include <stdio.h>
int main (void) {
    int 🦄pony🦄 = 129412;
    printf("Hello iPony%d!", 🦄pony🦄);
    return 0;
}
Hello iPony129412!%


Начиная с 10 версии.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено n00by , 10-Ноя-21 17:06 
Хватит дискриминировать поней!

$ cat hello.c && gcc hello.c && ./a.out

#include <locale.h>
#include <stdio.h>
#include <wchar.h>

int main(void) {
    setlocale(LC_ALL, "");
    wint_t 🦄pony🦄 = 129412;
    printf("Hello iPony%lc!\n", 🦄pony🦄);
    return 0;
}
Hello iPony🦄!



"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 11-Ноя-21 02:06 
https://www.developpez.net/forums/attachments/p409965d153634...

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено n00by , 11-Ноя-21 10:39 
Это их так покоробило от динамического полиморфизма не к месту, или std::shared_prt<> следовало заменить на Rust?

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 11-Ноя-21 14:46 
И каким же это образом Rust поможет без динамического полиморфизма и смартпоинтеров создать массив разнотипных объектов? Не just for lulz, как на картинке, а в более реалистичном варианте, где типы складываемых в контейнер объектов раскиданы по разным файлам/модулям без возможности объединить в что-то типа std::variant<>.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено n00by , 11-Ноя-21 16:50 
Гипотетически Rust позволяет решить любую надуманную проблему. А практически часть кода из примера можно выкинуть.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 11-Ноя-21 18:55 
> И каким же это образом Rust поможет без динамического полиморфизма и смартпоинтеров
> создать массив разнотипных объектов? Не just for lulz, как на картинке,
> а в более реалистичном варианте, где типы складываемых в контейнер объектов
> раскиданы по разным файлам/модулям без возможности объединить в что-то типа std::variant<>.

https://doc.rust-lang.org/std/rc/struct.Rc.html
https://docs.rs/vptr/0.1.0/vptr/
Сам что-то придумал, сам что-то оспорил.



"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Тот_Самый_Анонимус , 10-Ноя-21 14:07 
>Обезьянки ведь никак не могли жить без не-английских символов в именах переменных?

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


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено kusb , 10-Ноя-21 14:33 
А как цитировать что-то из арабского, например? И как раз в коде, где переменные на таких языках с переносом с переключением строки не обойдёшься, наверное.
В принципе если есть кодировка с единорогами, то нужно и её покрывать, ведь собрались заменить все кодировки вообще...
(Всё жду, когда добавят модификаторы уровня жирного текста, центровки, размера, css/svg и всё схлопнется в сингулярность.)

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Тот_Самый_Анонимус , 10-Ноя-21 16:25 
>А как цитировать что-то из арабского, например?

С новой строки.

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

Тогда и операторы для них пусть тоже пишутся справа налево.

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

Не нужно. Васянистые кодировки не нужны.

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


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено виндотролль , 10-Ноя-21 22:27 
> вроде флага извращенцев

Это ты об этом 🇷🇺? Не вижу ничего плохого, пусть будет.


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Тот_Самый_Анонимус , 10-Ноя-21 23:10 
Ты понял о каком, если так полыхнуло сразу.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено виндотролль , 11-Ноя-21 21:45 
Я же просто спросил. Вам оттуда, извращенцами кажутся одни, а нам, отсюда — совсем другие.

А вы сразу агрессивно так минусов накидали, как будто дикари какие...


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Тот_Самый_Анонимус , 12-Ноя-21 05:14 
>Я же просто спросил.

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


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено виндотролль , 13-Ноя-21 16:12 
> Нет, не просто.

Какой вы проницательный


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Урри , 10-Ноя-21 14:16 
Анонимы опеннета пробивают очередное дно. Такое ощущение, что в мире бушует эпидемия идиотизма.

Напомню "не-обезьянкам", что O и 0 тоже одинаково отображаются. Если, конечно, у вас не правильный шрифт, который добавляет в 0 точечку (палочку) посередине. А еще 1 и l, I и l и т.д.

Даешь запрет всех похожих символов!
Или может просто надо использовать шрифт, который показывает разные символы по разному?


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Урри , 10-Ноя-21 14:28 
А, блин, прошу прощения у анонимов. Это же пох...
Ну тогда не все так плохо, надеюсь.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено kai3341 , 10-Ноя-21 18:47 
> Это же пох

Это да. Адекватность и пох в разных вселенных. Живая иллюстрация различия людей думающих и людей, думающих, что они думающие

Урри, тут может быть немного сложнее. Шрифт не повлияет на символ с нулевой длиной.


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Урри , 10-Ноя-21 22:36 
> Урри, тут может быть немного сложнее. Шрифт не повлияет на символ с
> нулевой длиной.

Лопни мои глаза, чем я читал?

Да, действительно, тут ситуация похуже будет.


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено kusb , 10-Ноя-21 14:36 
У меня по разному кстати сейчас. Вот:
https://ltdfoto.ru/images/SNIMOK86d271fea75bf9b3.png

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено kusb , 10-Ноя-21 14:37 
Хотя спутать можно легко, да.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 14:56 
I и l одинаковые.

Большая Ай и маленькая Эль.


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено keydon , 10-Ноя-21 15:23 
Причем тут шрифт, если предполагается что символ неотображаемый? Это в других кодировках еще можно табы заменить какими-нибудь глифами, а в юникоде этих символов дочерта (U00A0, U0082, U0083, U0085 и это не полный список).
Например Anonymous Pro который ты советуешь (пруф https://www.opennet.me/openforum/vsluhforumID3/125739.html#182) его не отобразит. И unifont подозреваю тоже.

Но вообще я твою мысль понял: Юникод "прост как два байта" (С) Урри
А все проблемы которые он вызывает это не проблемы юникода, а криворукость тех кто его отображает ("текстовых редакторов", языков, библиотек, разработчиков и т.д.) и тебе плевать что эти проблемы создает юникод. Прям как в анекдоте http://anek.ws/anekdot.php?a=9639


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Урри , 10-Ноя-21 22:38 
Да, это проблема тех, кто его отображает.
И эти проблемы создает не юникод, а реальная жизнь, в которой есть такое понятие как естественные языки с их историей и сопутствующее им книгопечатание.

Смотри какая сложная сущность, оказывается, "простой" пробел: https://type.today/ru/journal/spaces


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено keydon , 11-Ноя-21 01:14 
>И эти проблемы создает не юникод, а реальная жизнь, в которой есть такое понятие как естественные языки с их историей и сопутствующее им книгопечатание.

Тут я с тобой согласен


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 16:28 
У меня эти символы отличаются абсолютно. Нужно просто использовать шрифты здорового человека, а не непонятно что. 1 от l и I отличается, | так вообще огромный символ во весь глиф (? хз как правильно называется), в отличие от других букв. 0Оо тоже абсолютно разные, хотя вот в браузере на мобильнике шрифт херовый и их можно спутать, но в системе у меня они отличаются. Хз откуда пошла мода на шрифты которые не дают отличить два похожих символа, но это уже давно не проблема

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Урри , 10-Ноя-21 22:39 
> Нужно просто использовать шрифты здорового человека, а не непонятно что.

Именно.


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 18:07 
Вообще-то, они все разные, никогда не спутаешь. O и О ещё можно перепутать (потому что они одинаковые обычно). А цифры с буквами только в плохих дешёвых шрифтах одинаковые. Вроде, самый обычный Arial, не знаю. Более того, я перебрал все шрифты, и символы похожи только в Impact. На Segoe Script ещё сложновато отличить. Т.е. вообще никак не перепутаешь. Не понимаю к чему твои откровения, тут проблема всё таки другая несколько другая. Надо просто [s]запретить евrеев[/s] не скрывать непечатаемые символы для начала, что все сколько-нибудь приличные редакторы умеют испокон веков.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено пох. , 11-Ноя-21 17:26 
И как именно "по разному" шрифт должен показывать _невидимые_ символы?

А | в именах переменных, внезапно, и так недопустимый символ. Даешь победу над этой дискриминацией?


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено n00by , 12-Ноя-21 09:03 
> А | в именах переменных, внезапно, и так недопустимый символ. Даешь победу
> над этой дискриминацией?

Язык твой -- враг твой!


$ cat d.ref && ./d.ref пох
#!/bin/refal

Main ! (.|||.) = <Prout 'привет ' .|||. '!'>;

привет пох!


Это именно замшелый джавоскрипт ущемляет права переменных.

"Рефал"
Отправлено qweo , 12-Ноя-21 19:16 
Есть свободная реализация Рефала?

"Рефал"
Отправлено n00by , 13-Ноя-21 07:28 
Что Вы понимаете под "свободной", наличие ограничений в виде лицензии GPL?

Единственный живой транслятор, что я нашёл (компилятор развивает кафедра ИУ-9, МГТУ им. Н.Э. Баумана), распространяется под BSDL https://github.com/bmstu-iu9/refal-5-lambda/blob/master/LICENSE

Выше пример (поддерживаются дополнительные префиксы t- и e- переменных и точка входа) для моего интерпретатора https://github.com/STrusov/refal-machine
он пока не вполне готов (по 32 разряда не собирал даже, есть вопросы по организации "кучи") но свободно скачать и поиграться можно.


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Михрютка , 10-Ноя-21 17:09 
>>>Обезьянки ведь никак не могли жить без не-английских символов в именах переменных?

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


"Применение невидимых unicode-символов в каментах"
Отправлено Михрютка , 10-Ноя-21 17:30 
здесь было применение невидимых юникод-символов в каментах.


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 12:44 
Срочно запретить

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 12:48 
На жаваскрипте ничего кроме малвари пишут. Все эти запреты копирования и всё подобное это тоже малварь ещё та.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено QwertyReg , 10-Ноя-21 13:11 
Написал мамкин борцун на сайте, использующем JS.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 13:24 
Как я пишу тогда? Сайты, использующие жс, даже не отображаются.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 16:32 
Недавно видел сайт, который является веб мордой к SDR приемнику. Всё работает на html5 и сначала даже не понял, что js на сайте выключен. А уж тексты отправлять... почитайте, что такое POST запросы, мб через curl по приколу сюда сообщение отправите.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Нанобот , 10-Ноя-21 12:49 
Проблема в людишках, не способных отличить "ㅤ"  от "". Срочно запретить людишек!

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 12:46 
Невидимые символы самая очевидная сфера для злоупотреблений используют такие уже лет 20.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 12:52 
Какие там 20, ещё Ленин в ссылке писал письма молоком.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 12:59 
В стандарте юникода, тогда такого не было.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено eee , 10-Ноя-21 16:05 
Ленин в ссылке писал письма молоком матери.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Анонимчег , 10-Ноя-21 23:54 
Ленин в ссылке писал кипятком

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 11-Ноя-21 12:08 
Ленин писал ссылки в письме гипертекстовым молоком.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 11-Ноя-21 22:22 
эта ветка похожа на обработку коммента нейронной сетью.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено мшефд , 12-Ноя-21 13:24 
> эта ветка похожа на обработку коммента нейронной сетью.

Нынешние анонимчеги уже начинают от НС безнадёжно отставать.


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено InuYasha , 10-Ноя-21 13:02 
🐵 Плохой программист: printf("Your ass is huge as my code! 🐔🐔🐔");
🐧 Хороший программист: printlocalized(STRID_HUGEASS); // где это вообще uint.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 13:06 
> В качестве примера приводится код для платформы Node.js, в котором при помощи переменной, состоящей из одного символа "ㅤ", скрыт бэкдор, позволяющий выполнить указанный злоумышленником код:

Для этого нужно, чтобы сервер был захвачен/под контролем. А если он захвачен, то какая разница, что именно передаётся? В чём прикол?


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Анонимный Анонимус , 10-Ноя-21 13:28 
Можно незаметно с PR добавить в какую нибудь бибилиотеку, а дальше он уже по всем сайтам разнесется.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 13:39 
Что именно разнесётся? Дополнительный параметр к своему же сайту? Или люди мержат код, который на сторону запрашивают всё подряд и им норм? Так проблема, опять же, не в юникоде.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 17:42 
эго не видит со стороны атакующего, а системный контроль предполагает глубоко рекурсивную перепроверку

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено псевдонимус , 10-Ноя-21 13:41 
Какой всё-таки замечательный зыг!

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено BratishkaErik , 10-Ноя-21 14:01 
Да я тоже не нарадуюсь, но он ещё нестабилен

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Урри , 10-Ноя-21 14:21 
В компиляторе раста уже исправили? Кто-то мониторит?

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 15:04 
да

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Георгий , 10-Ноя-21 14:23 
Вот так можно детектить рекурсивно в текущей папке.
Не уверен, насколько это переносимо.

grep -R --include \*.js  -H -n $'\u3164'
grep -R --include \*.js  -H -n $'\u1C3'

-R
рекурсивно

--include
ограничение по расширению
Звёздочка экранирована, чтобы bash её не воспринимал.

-H
выводить имя файла

-n
выводить номер строки

Код через доллар — это какой-то ANSI-C quoting.
Это чтобы исключить из вывода неюникодные файлы, где код будет двумя отдельными символами. Я даже не знаю, это фича баша или грепа.
Отсюда: https://unix.stackexchange.com/a/523339/250094


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 15:35 
Спешу тебя огорчить таких символов очень много. И они могут по разному отображаться в разные редакторах.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Георгий , 10-Ноя-21 19:06 
Т.к. это регексп, там можно в квадратных скобках перечислить.
В предыдущей новости есть пример:
https://www.opennet.me/opennews/art.shtml?num=56083

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 16:38 
Лучше тогда долбить на исключение, разрешая только ASCII. Проще спросить у человека "нахера ты по-китайски в коде писать начал" чем допускать, что кто-то может написать что-то на расширенной латыни.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Георгий , 10-Ноя-21 19:12 
Подобные ограничения делают нечитаемым код, если он производит любую сложную обработку юникодного текста. Можно, конечно, надеяться на то, что IDE будет автоматически транслировать юникодные последовательности на UI, но это не каждая IDE умеет.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено OpenEcho , 10-Ноя-21 20:02 
Все значительно проще:

> cat shitty_source_code.ext | iconv -c -f utf-8 -t ascii -o human_based.ext


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено kusb , 10-Ноя-21 14:28 
set {} {}

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 14:35 
> Unicode-категория, в которую входит данный символ, разрешена начиная со спецификации ECMAScript 2015 для использования в именах переменных JavaScript

Зачем вообще это было сделано? Почему латинских букв не хватало?


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено kusb , 10-Ноя-21 14:38 
Национальные символы в переменных иногда это круто.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено пох.. , 10-Ноя-21 14:39 
да, очень круто - вот, можно выполнить совсем не то что написано, например.


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 14:47 
Это не проблема языков программирования, это проблема терминалов, шрифтов, редакторов и стандартов кодирования символов типа unicode.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено пох.. , 10-Ноя-21 15:11 
точно! Терминалы плохие!

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

Б-ть, куда бечь от вас? На марс я на этой херне не полечу, фон Браун сдох, "наши немцы" тоже...


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено n00by , 10-Ноя-21 17:28 
А ещё можно запятую перегрузить.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Михрютка , 10-Ноя-21 17:57 
> Это не проблема языков программирования, это проблема терминалов, шрифтов, редакторов
> и стандартов кодирования символов типа unicode.

И ЖИВОТНОВОДСТВА!


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 18:04 
Наоборот, это проблема языка, и тех кто принимал стандарт. Они не учли такого рода уязвимость. а должны были всё учитывать.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Михрютка , 10-Ноя-21 17:34 
> да, очень круто - вот, можно выполнить совсем не то что написано,
> например.

можно оㅤхㅤуㅤеㅤнㅤнㅤо троллить коллег по работе, дальше уютной VS не вылезающих.



"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено пох.. , 10-Ноя-21 14:39 
тебе ж ясно сказали - обезьянка не может в енгриш!
И вообще что это за код без переменной с цветуечком?!

Ты наверное луддит и ретроград, и обижаешь чорных?!


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 15:45 
Для молодого поколения кстати хорошо заходят комментарии к коду с эмоджи)

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено пох.. , 10-Ноя-21 16:01 
причем с тремя типами к@кашек - она, оно и к@кашка-ниггер.

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


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 22:38 
ты черную масть не трожь! не черных, а черномазых

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 14:44 
Ну можно и в обратную сторону вопрос задать, а почему имена переменных только на английском? Получается что бы программировать нужно английский учить или писать spravka, obyavlenie, zakaz и т.д.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено пох.. , 10-Ноя-21 15:12 
> Ну можно и в обратную сторону вопрос задать, а почему имена переменных
> только на английском?

имена переменных - символами допустимого языком алфавита. Да. Еще и не с каждого при этом могут начинаться. Что в этом такого ужасного и удивительного?

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

обизьянка нишмагла вайти в айти. Катастрофа, горе, миру нужно больше кодеров!


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 12-Ноя-21 16:07 
Правильно, раб. Слуги должны знать язык хозяина.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено YetAnotherOnanym , 10-Ноя-21 15:23 
Чтобы хоть как-то оградить программирование от тех, кто пишет на родном "что бы" и без запятой после вводного слова "Получается".

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 15:42 
Самое забавное получается имена колонок в базах данных переводить из полей в документах.  "Размер задатка", "Площадь земельного участка", "Вскрытие конкурсных приложений" и  таких колонок десяток и по какому правилу их транслировать не понятно, а переводить на простой английский потом не разберешься никогда.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 16:43 
Вы не путайте имена внутри кода и строки текста. Строки то хрен с ними, хоть задом наперёд пишите (хотя все таки лучше выносить это дело в отдельный хеадер или конфиг, имхо)

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Михрютка , 10-Ноя-21 19:46 
>>>"Размер задатка"

Earnest money size

>>>"Площадь земельного участка"

Earthly precinct Square

>>>"Вскрытие конкурсных приложений"

Autopsy of concurrent applications

чо непонятного-то


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Георгий , 10-Ноя-21 14:50 
Если код связан с естественным языком (скажем, NLP), там могут быть случаи, когда код становится почти нечитаемым, если использовать перевод на английский или транслит. Сам с таким сталкивался. Если мы что-то делаем очень специфичное для языка X, некоторые вещи удобнее называть на самом этом языке X.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено anonymous , 10-Ноя-21 15:15 
Вот, кстати, да, пробовал переводить на английский "корпус", "строение" и другие аналогичные вещи - получается коряво и непонятно. И это даже не NLP никакое, а простая обработка адреса.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено пох. , 10-Ноя-21 19:05 
гуглтранслейтом, видать, пробовал-то?
Ну да, у него не очень переводы. Корявые и непонятные.

А "bld#../site ...." - вполне себе бывают в ихних адресах, правда, обычно это когда не жилой дом ищешь, а какой-нибудь склад или вовсе сарай при складе, у которого и улицы-то нет.


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноньимъ , 10-Ноя-21 15:23 
Жаваскрипт как всегда жаваскрипт.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 15:29 
Это общая проблема. В самом начале новости об этом сказано.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 15:46 
Формулы в экселе тоже подвержены таким же уязвимостям например.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноньимъ , 10-Ноя-21 17:23 
> Это общая проблема. В самом начале новости об этом сказано.

Общая для кого?

Кто в здравом уме будет непечатные символы для имён переменных разрешать?


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Led , 10-Ноя-21 19:51 
>Кто в здравом уме будет непечатные символы для имён переменных разрешать?

Это же очевидно - те, кто не в здравом уме: мaкaки и прочие гвидoбейсикoкoкoкoдеры.


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено пох. , 10-Ноя-21 19:07 
> Это общая проблема. В самом начале новости об этом сказано.

* Developer environment: Unicode's bidirectional (BiDi) override characters
can cause trojan source attacks (CVE-2021-42574)

gcc.

Проблема общая - население растет постоянно, а сумма разума на планетке, похоже, константа.


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноньимъ , 10-Ноя-21 23:58 
Похоже вручную прописать допустимые символы или проверить что там за херню разрешаешь невообразимо нетривиальное действие для современных разработчиков.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 11-Ноя-21 01:38 
> прописать допустимые символы или проверить что там за херню разрешаешь невообразимо нетривиальное действие для современных разработчиков.

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


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено пох. , 11-Ноя-21 09:19 
> Не только разработчиков. Сегодня вообще такую ахинею творят что не на одну
> голову не налазит, вон на хруст посмотри

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


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено пох. , 11-Ноя-21 09:17 
Второе - абсолютно неверный подход за который п-дили палками еще каких-то двадцать лет назад.

Именно потому что *не напроверяешься* и не угадаешь, каких фокусов тебе подкинут люди, желающие впихнуть в unicode даже небо и даже Аллаха.

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

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


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 11-Ноя-21 18:00 
на троичной оптике и квантовых кубитах яваскрипт с эмодзи будут еще инклюзивнее работать, с запасом для юниверскода

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено пох. , 11-Ноя-21 18:27 
> на троичной оптике и квантовых кубитах яваскрипт с эмодзи будут еще инклюзивнее
> работать, с запасом для юниверскода

и у кого меньше ста кубитов - тот лох и недостоин современного веба.


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено microcoder , 10-Ноя-21 15:41 
.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 17:19 
запретить невидимые символы в именах символах. И пофиг, ели у кого что-то сломается. Если сломалось - значит код нелегитимный.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 19:38 
Знаешь сколько их и их комбинаций? Чего себя утруждать, A-Z, a-z, _ и 0-9 если не первый символ. Постойте-ка...

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 10-Ноя-21 23:11 
Никогда такого не было и вот опять!
Ярчайший пример: придумали всратый IRI вместо URI, а потом ВНЕЗАПНО оказалось: можно отстрелить себе не то что ногу, а хвост по самую нижнюю челюсть.
До этого был  RFC 3986. Простой и надежный. Но не-е-е-ет! "Права non-latin языков ущемляются".

Ящитаю авторов подобного сжечь как врагов Человечества, а их поделия предать анафеме.


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 11-Ноя-21 01:41 
Фильтра/списка вменяемых/допустимых юникод символов до сиих пор не существует. Зато есть эможи пилять

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено mos87 , 11-Ноя-21 07:05 
собсно скоро человейчество только на них и перейдёт

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 11-Ноя-21 18:47 
latin-1. Для кода вполне достаточно.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Онаним , 11-Ноя-21 19:16 
Не надо latin1, там вторая половина тоже не подарок.
ASCII #20-#7E вполне достаточно.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Аноним , 11-Ноя-21 18:37 
были 6 бит/байт, была сетунь, были uri - всё на плаху доступности коммунизма мировому сообществу.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено mos87 , 11-Ноя-21 07:03 
MOAR ненужных усложнений

а чо вы хотеле?


"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Онаним , 11-Ноя-21 15:13 
Как будто это жабоскрипту сильно повредило.

"Применение невидимых unicode-символов для скрытия действий в..."
Отправлено Alexey_Tor_ , 11-Ноя-21 21:26 
Сделал фикс для CudaText: https://github.com/Alexey-T/ATSynEdit/commit/94e80033b5a3cfa...

Предыдущая юникод-атака также была закрыта.