The OpenNET Project / Index page

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



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

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

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

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

Оглавление

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

1. Сообщение от пох. (?), 10-Ноя-21, 12:43   +28 +/
Ну вот, счастья и привалило. Обезьянки ведь никак не могли жить без не-английских символов в именах переменных? Ну и нате вам пачку невидимых до кучи.

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #4, #5, #8, #11, #29, #30, #69

2. Сообщение от Аноним (5), 10-Ноя-21, 12:44   +1 +/
Срочно запретить
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #6, #7

3. Сообщение от Аноним (8), 10-Ноя-21, 12:46   +6 +/
Невидимые символы самая очевидная сфера для злоупотреблений используют такие уже лет 20.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #10

4. Сообщение от 41 (?), 10-Ноя-21, 12:46   +3 +/
в довесок стоит отметить запятую-разделитель после последнего элемента структуры — так же сомнительная фича для ленивых со-стековерфлоу-копипастеров
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #53, #67

5. Сообщение от Аноним (5), 10-Ноя-21, 12:47   +1 +/
хорошо что ты всё понимаешь и всегда объяснишь обезьянкам как им следует поступать
чтобы они без тебя делали?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

6. Сообщение от Аноним (78), 10-Ноя-21, 12:48   +3 +/
На жаваскрипте ничего кроме малвари пишут. Все эти запреты копирования и всё подобное это тоже малварь ещё та.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #20

7. Сообщение от Нанобот (ok), 10-Ноя-21, 12:49   +1 +/
Проблема в людишках, не способных отличить "ㅤ"  от "". Срочно запретить людишек!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

8. Сообщение от Аноним (8), 10-Ноя-21, 12:50   +17 +/
🐧 ⋆ 🐼  🎀 П̷р̷о̷с̷т̷о̷ ̷т̷ы̷ ̷н̷и̷ч̷е̷г̷о̷ ̷н̷е̷ ̷п̷о̷н̷и̷м̷а̷е̷ш̷ь̷.̷ 𝐈𝐧 𝐫𝐞𝐚𝐥 𝐥𝐢𝐟𝐞 𝕌𝕟𝕚𝕔𝕠𝕕𝕖-𝕥𝕖𝕩𝕥  н⃣   е⃣   з⃣   а⃣   м⃣   е⃣   н⃣   и⃣   м⃣  🎀  🐼 ⋆ 🐧
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #21, #87

10. Сообщение от Аноним (10), 10-Ноя-21, 12:52   +11 +/
Какие там 20, ещё Ленин в ссылке писал письма молоком.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #12, #61, #115, #129

11. Сообщение от iPony129412 (?), 10-Ноя-21, 12:56   –2 +/
А gcc уже умеет в переменные с emoji? 🤨
Когда последний раз тыкал своей палочкой палочкой - не получалось.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #15, #16

12. Сообщение от Аноним (8), 10-Ноя-21, 12:59   +/
В стандарте юникода, тогда такого не было.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10

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

15. Сообщение от 41 (?), 10-Ноя-21, 13:05   +5 +/
> Когда последний раз тыкал своей палочкой палочкой - не получалось

извращенец

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

16. Сообщение от Аноним84701 (ok), 10-Ноя-21, 13:06   +4 +/
> А 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 версии.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #68, #108

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

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

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

20. Сообщение от QwertyReg (ok), 10-Ноя-21, 13:11   +/
Написал мамкин борцун на сайте, использующем JS.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #23, #64

21. Сообщение от InuYasha (??), 10-Ноя-21, 13:12   +4 +/
Точно, как без этого первоклаш..курсникам математику объяснять?
2🐭 + 8🦊 = 🐵
🐵*🐷 + 🦂 = 🐔🐔🐔
великолепие же!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #22, #139

22. Сообщение от Нанобот (ok), 10-Ноя-21, 13:21   +56 +/
log(😅)=💧log(😄)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #89

23. Сообщение от Аноним (78), 10-Ноя-21, 13:24   +1 +/
Как я пишу тогда? Сайты, использующие жс, даже не отображаются.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20

25. Сообщение от Анонимный Анонимус (?), 10-Ноя-21, 13:28   +5 +/
Можно незаметно с PR добавить в какую нибудь бибилиотеку, а дальше он уже по всем сайтам разнесется.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17 Ответы: #26

26. Сообщение от Аноним (17), 10-Ноя-21, 13:39   –4 +/
Что именно разнесётся? Дополнительный параметр к своему же сайту? Или люди мержат код, который на сторону запрашивают всё подряд и им норм? Так проблема, опять же, не в юникоде.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25 Ответы: #75

27. Сообщение от псевдонимус (?), 10-Ноя-21, 13:41   +/
Какой всё-таки замечательный зыг!
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #28

28. Сообщение от BratishkaErik (ok), 10-Ноя-21, 14:01   +1 +/
Да я тоже не нарадуюсь, но он ещё нестабилен
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27

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

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

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

30. Сообщение от Урри (ok), 10-Ноя-21, 14:16   +1 +/
Анонимы опеннета пробивают очередное дно. Такое ощущение, что в мире бушует эпидемия идиотизма.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #33, #37, #52, #63, #78, #120

31. Сообщение от Урри (ok), 10-Ноя-21, 14:21   –1 +/
В компиляторе раста уже исправили? Кто-то мониторит?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #46

32. Сообщение от Георгийemail (??), 10-Ноя-21, 14:23   –1 +/
Вот так можно детектить рекурсивно в текущей папке.
Не уверен, насколько это переносимо.

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

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

33. Сообщение от Урри (ok), 10-Ноя-21, 14:28   +2 +/
А, блин, прошу прощения у анонимов. Это же пох...
Ну тогда не все так плохо, надеюсь.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30 Ответы: #79

34. Сообщение от kusb (?), 10-Ноя-21, 14:28   –1 +/
set {} {}
Ответить | Правка | Наверх | Cообщить модератору

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

36. Сообщение от Аноним (36), 10-Ноя-21, 14:35   +/
> Unicode-категория, в которую входит данный символ, разрешена начиная со спецификации ECMAScript 2015 для использования в именах переменных JavaScript

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #39, #40, #42, #44

37. Сообщение от kusb (?), 10-Ноя-21, 14:36   +/
У меня по разному кстати сейчас. Вот:
https://ltdfoto.ru/images/SNIMOK86d271fea75bf9b3.png
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30 Ответы: #38, #45

38. Сообщение от kusb (?), 10-Ноя-21, 14:37   +/
Хотя спутать можно легко, да.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37

39. Сообщение от kusb (?), 10-Ноя-21, 14:38   –2 +/
Национальные символы в переменных иногда это круто.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #41

40. Сообщение от пох.. (?), 10-Ноя-21, 14:39   +1 +/
тебе ж ясно сказали - обезьянка не может в енгриш!
И вообще что это за код без переменной с цветуечком?!

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

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

41. Сообщение от пох.. (?), 10-Ноя-21, 14:39   +2 +/
да, очень круто - вот, можно выполнить совсем не то что написано, например.

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

42. Сообщение от Аноним (43), 10-Ноя-21, 14:44   +/
Ну можно и в обратную сторону вопрос задать, а почему имена переменных только на английском? Получается что бы программировать нужно английский учить или писать spravka, obyavlenie, zakaz и т.д.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #48, #51, #57

43. Сообщение от Аноним (43), 10-Ноя-21, 14:47   –1 +/
Это не проблема языков программирования, это проблема терминалов, шрифтов, редакторов и стандартов кодирования символов типа unicode.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #41 Ответы: #47, #76, #77

44. Сообщение от Георгийemail (??), 10-Ноя-21, 14:50   +1 +/
Если код связан с естественным языком (скажем, NLP), там могут быть случаи, когда код становится почти нечитаемым, если использовать перевод на английский или транслит. Сам с таким сталкивался. Если мы что-то делаем очень специфичное для языка X, некоторые вещи удобнее называть на самом этом языке X.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #49

45. Сообщение от Аноним (45), 10-Ноя-21, 14:56   +/
I и l одинаковые.

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

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

46. Сообщение от Аноним (46), 10-Ноя-21, 15:04   +/
да
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31

47. Сообщение от пох.. (?), 10-Ноя-21, 15:11   +6 +/
точно! Терминалы плохие!

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

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

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

48. Сообщение от пох.. (?), 10-Ноя-21, 15:12   –1 +/
> Ну можно и в обратную сторону вопрос задать, а почему имена переменных
> только на английском?

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

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

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

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

49. Сообщение от anonymous (??), 10-Ноя-21, 15:15   +/
Вот, кстати, да, пробовал переводить на английский "корпус", "строение" и другие аналогичные вещи - получается коряво и непонятно. И это даже не NLP никакое, а простая обработка адреса.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44 Ответы: #80

50. Сообщение от Аноньимъ (ok), 10-Ноя-21, 15:23   –2 +/
Жаваскрипт как всегда жаваскрипт.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #54

51. Сообщение от YetAnotherOnanym (ok), 10-Ноя-21, 15:23   +3 +/
Чтобы хоть как-то оградить программирование от тех, кто пишет на родном "что бы" и без запятой после вводного слова "Получается".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42

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

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

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

53. Сообщение от Аноним (53), 10-Ноя-21, 15:26   +2 +/
Она есть в других языках тоже и применяется чтобы дифф уменьшать при добавлении новых полей. Но в целом я тоже против этого.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4

54. Сообщение от Аноним (53), 10-Ноя-21, 15:29   +/
Это общая проблема. В самом начале новости об этом сказано.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50 Ответы: #59, #71, #82

55. Сообщение от Аноним (8), 10-Ноя-21, 15:35   +2 +/
Спешу тебя огорчить таких символов очень много. И они могут по разному отображаться в разные редакторах.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32 Ответы: #81

56. Сообщение от microcoder (ok), 10-Ноя-21, 15:41   +/
.
Ответить | Правка | Наверх | Cообщить модератору

57. Сообщение от Аноним (8), 10-Ноя-21, 15:42   +/
Самое забавное получается имена колонок в базах данных переводить из полей в документах.  "Размер задатка", "Площадь земельного участка", "Вскрытие конкурсных приложений" и  таких колонок десяток и по какому правилу их транслировать не понятно, а переводить на простой английский потом не разберешься никогда.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42 Ответы: #66, #85

58. Сообщение от Аноним (8), 10-Ноя-21, 15:45   –1 +/
Для молодого поколения кстати хорошо заходят комментарии к коду с эмоджи)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #60

59. Сообщение от Аноним (8), 10-Ноя-21, 15:46   +/
Формулы в экселе тоже подвержены таким же уязвимостям например.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #54

60. Сообщение от пох.. (?), 10-Ноя-21, 16:01   +/
причем с тремя типами к@кашек - она, оно и к@кашка-ниггер.

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

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

61. Сообщение от eee (??), 10-Ноя-21, 16:05   +/
Ленин в ссылке писал письма молоком матери.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #100

62. Сообщение от Тот_Самый_Анонимус (?), 10-Ноя-21, 16:25   +1 +/
>А как цитировать что-то из арабского, например?

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

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

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

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

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

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

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

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

64. Сообщение от Аноним (63), 10-Ноя-21, 16:32   –1 +/
Недавно видел сайт, который является веб мордой к SDR приемнику. Всё работает на html5 и сначала даже не понял, что js на сайте выключен. А уж тексты отправлять... почитайте, что такое POST запросы, мб через curl по приколу сюда сообщение отправите.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20

65. Сообщение от Аноним (63), 10-Ноя-21, 16:38   +3 +/
Лучше тогда долбить на исключение, разрешая только ASCII. Проще спросить у человека "нахера ты по-китайски в коде писать начал" чем допускать, что кто-то может написать что-то на расширенной латыни.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32 Ответы: #83

66. Сообщение от Аноним (63), 10-Ноя-21, 16:43   +1 +/
Вы не путайте имена внутри кода и строки текста. Строки то хрен с ними, хоть задом наперёд пишите (хотя все таки лучше выносить это дело в отдельный хеадер или конфиг, имхо)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57

67. Сообщение от kai3341 (ok), 10-Ноя-21, 17:01   +3 +/
Trailing запятая-разделитель как раз удобнейший паттерн, появившийся сначала далеко не в JS
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4

68. Сообщение от n00by (ok), 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🦄!


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

69. Сообщение от Михрютка (ok), 10-Ноя-21, 17:09   –2 +/
>>>Обезьянки ведь никак не могли жить без не-английских символов в именах переменных?

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

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

70. Сообщение от Аноним (70), 10-Ноя-21, 17:19   +2 +/
запретить невидимые символы в именах символах. И пофиг, ели у кого что-то сломается. Если сломалось - значит код нелегитимный.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #84

71. Сообщение от Аноньимъ (ok), 10-Ноя-21, 17:23   –1 +/
> Это общая проблема. В самом начале новости об этом сказано.

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

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

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

72. Сообщение от n00by (ok), 10-Ноя-21, 17:28   +1 +/
А ещё можно запятую перегрузить.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #47

73. Сообщение от Михрютка (ok), 10-Ноя-21, 17:30   –1 +/
здесь было применение невидимых юникод-символов в каментах.

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

74. Сообщение от Михрютка (ok), 10-Ноя-21, 17:34   +/
> да, очень круто - вот, можно выполнить совсем не то что написано,
> например.

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


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

75. Сообщение от Аноним (75), 10-Ноя-21, 17:42   –1 +/
эго не видит со стороны атакующего, а системный контроль предполагает глубоко рекурсивную перепроверку
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26

76. Сообщение от Михрютка (ok), 10-Ноя-21, 17:57   +/
> Это не проблема языков программирования, это проблема терминалов, шрифтов, редакторов
> и стандартов кодирования символов типа unicode.

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

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

77. Сообщение от Аноним (-), 10-Ноя-21, 18:04   +/
Наоборот, это проблема языка, и тех кто принимал стандарт. Они не учли такого рода уязвимость. а должны были всё учитывать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43

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

79. Сообщение от kai3341 (ok), 10-Ноя-21, 18:47   +/
> Это же пох

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

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

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

80. Сообщение от пох. (?), 10-Ноя-21, 19:05   –1 +/
гуглтранслейтом, видать, пробовал-то?
Ну да, у него не очень переводы. Корявые и непонятные.

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

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

81. Сообщение от Георгийemail (??), 10-Ноя-21, 19:06   –1 +/
Т.к. это регексп, там можно в квадратных скобках перечислить.
В предыдущей новости есть пример:
https://www.opennet.ru/opennews/art.shtml?num=56083
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #55

82. Сообщение от пох. (?), 10-Ноя-21, 19:07   –1 +/
> Это общая проблема. В самом начале новости об этом сказано.

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

gcc.

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

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

83. Сообщение от Георгийemail (??), 10-Ноя-21, 19:12   –1 +/
Подобные ограничения делают нечитаемым код, если он производит любую сложную обработку юникодного текста. Можно, конечно, надеяться на то, что IDE будет автоматически транслировать юникодные последовательности на UI, но это не каждая IDE умеет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65

84. Сообщение от Аноним (84), 10-Ноя-21, 19:38   +/
Знаешь сколько их и их комбинаций? Чего себя утруждать, A-Z, a-z, _ и 0-9 если не первый символ. Постойте-ка...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #70

85. Сообщение от Михрютка (ok), 10-Ноя-21, 19:46   +1 +/
>>>"Размер задатка"

Earnest money size

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

Earthly precinct Square

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

Autopsy of concurrent applications

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

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

86. Сообщение от Led (ok), 10-Ноя-21, 19:51   +5 +/
>Кто в здравом уме будет непечатные символы для имён переменных разрешать?

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

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

87. Сообщение от OpenEcho (?), 10-Ноя-21, 19:58   +1 +/
iconv -c -f utf-8 -t ascii -o human-text.txt

и вас нету...

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

88. Сообщение от OpenEcho (?), 10-Ноя-21, 20:02   +/
Все значительно проще:

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

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

89. Сообщение от владик (??), 10-Ноя-21, 22:22   +1 +/
блин чувак ты круто придумал
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22 Ответы: #114

90. Сообщение от виндотролль (ok), 10-Ноя-21, 22:27   +/
> вроде флага извращенцев

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

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

91. Сообщение от Урри (ok), 10-Ноя-21, 22:36   +/
> Урри, тут может быть немного сложнее. Шрифт не повлияет на символ с
> нулевой длиной.

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

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

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

92. Сообщение от Урри (ok), 10-Ноя-21, 22:38   +1 +/
Да, это проблема тех, кто его отображает.
И эти проблемы создает не юникод, а реальная жизнь, в которой есть такое понятие как естественные языки с их историей и сопутствующее им книгопечатание.

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

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

93. Сообщение от Аноним (93), 10-Ноя-21, 22:38   +/
ты черную масть не трожь! не черных, а черномазых
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40

94. Сообщение от Урри (ok), 10-Ноя-21, 22:39   +/
> Нужно просто использовать шрифты здорового человека, а не непонятно что.

Именно.

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

96. Сообщение от Тот_Самый_Анонимус (?), 10-Ноя-21, 23:10   +1 +/
Ты понял о каком, если так полыхнуло сразу.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #90 Ответы: #128

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

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

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

100. Сообщение от Анонимчег (?), 10-Ноя-21, 23:54   –1 +/
Ленин в ссылке писал кипятком
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #61

101. Сообщение от Аноньимъ (ok), 10-Ноя-21, 23:58   –1 +/
Похоже вручную прописать допустимые символы или проверить что там за херню разрешаешь невообразимо нетривиальное действие для современных разработчиков.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #82 Ответы: #103, #111

102. Сообщение от keydon (ok), 11-Ноя-21, 01:14   +/
>И эти проблемы создает не юникод, а реальная жизнь, в которой есть такое понятие как естественные языки с их историей и сопутствующее им книгопечатание.

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

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

103. Сообщение от Аноним (-), 11-Ноя-21, 01:38   +/
> прописать допустимые символы или проверить что там за херню разрешаешь невообразимо нетривиальное действие для современных разработчиков.

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

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

104. Сообщение от Аноним (-), 11-Ноя-21, 01:41   +/
Фильтра/списка вменяемых/допустимых юникод символов до сиих пор не существует. Зато есть эможи пилять
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #97 Ответы: #110, #124

108. Сообщение от Аноним (108), 11-Ноя-21, 02:06   +2 +/
https://www.developpez.net/forums/attachments/p409965d153634...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16 Ответы: #113

109. Сообщение от mos87 (ok), 11-Ноя-21, 07:03   +/
MOAR ненужных усложнений

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

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

110. Сообщение от mos87 (ok), 11-Ноя-21, 07:05   +2 +/
собсно скоро человейчество только на них и перейдёт
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #104

111. Сообщение от пох. (?), 11-Ноя-21, 09:17   +2 +/
Второе - абсолютно неверный подход за который п-дили палками еще каких-то двадцать лет назад.

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

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

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

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

112. Сообщение от пох. (?), 11-Ноя-21, 09:19   +1 +/
> Не только разработчиков. Сегодня вообще такую ахинею творят что не на одну
> голову не налазит, вон на хруст посмотри

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

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

113. Сообщение от n00by (ok), 11-Ноя-21, 10:39   +/
Это их так покоробило от динамического полиморфизма не к месту, или std::shared_prt<> следовало заменить на Rust?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #108 Ответы: #116

114. Сообщение от Нанобот (ok), 11-Ноя-21, 10:52   +/
> блин чувак ты круто придумал

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

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

115. Сообщение от Аноним (115), 11-Ноя-21, 12:08   +/
Ленин писал ссылки в письме гипертекстовым молоком.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10

116. Сообщение от Аноним (108), 11-Ноя-21, 14:46   +/
И каким же это образом Rust поможет без динамического полиморфизма и смартпоинтеров создать массив разнотипных объектов? Не just for lulz, как на картинке, а в более реалистичном варианте, где типы складываемых в контейнер объектов раскиданы по разным файлам/модулям без возможности объединить в что-то типа std::variant<>.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #113 Ответы: #119, #125

117. Сообщение от Онаним (?), 11-Ноя-21, 15:13   +/
Как будто это жабоскрипту сильно повредило.
Ответить | Правка | Наверх | Cообщить модератору

118. Сообщение от Онаним (?), 11-Ноя-21, 15:16   +/
И г-код не работает, потому что макака навставляла разных emoji в одинаковые имена переменных.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #87

119. Сообщение от n00by (ok), 11-Ноя-21, 16:50   +/
Гипотетически Rust позволяет решить любую надуманную проблему. А практически часть кода из примера можно выкинуть.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #116

120. Сообщение от пох. (?), 11-Ноя-21, 17:26   –1 +/
И как именно "по разному" шрифт должен показывать _невидимые_ символы?

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

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

121. Сообщение от Аноним (75), 11-Ноя-21, 18:00   +/
на троичной оптике и квантовых кубитах яваскрипт с эмодзи будут еще инклюзивнее работать, с запасом для юниверскода
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #111 Ответы: #122

122. Сообщение от пох. (?), 11-Ноя-21, 18:27   +/
> на троичной оптике и квантовых кубитах яваскрипт с эмодзи будут еще инклюзивнее
> работать, с запасом для юниверскода

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

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

123. Сообщение от Аноним (75), 11-Ноя-21, 18:37   +/
были 6 бит/байт, была сетунь, были uri - всё на плаху доступности коммунизма мировому сообществу.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #97

124. Сообщение от Аноним (97), 11-Ноя-21, 18:47   +/
latin-1. Для кода вполне достаточно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #104 Ответы: #126

125. Сообщение от Аноним (-), 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/
Сам что-то придумал, сам что-то оспорил.


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

126. Сообщение от Онаним (?), 11-Ноя-21, 19:16   +/
Не надо latin1, там вторая половина тоже не подарок.
ASCII #20-#7E вполне достаточно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #124

127. Сообщение от Alexey_Tor_ (?), 11-Ноя-21, 21:26   +/
Сделал фикс для CudaText: https://github.com/Alexey-T/ATSynEdit/commit/94e80033b5a3cfa...

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

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

128. Сообщение от виндотролль (ok), 11-Ноя-21, 21:45   –2 +/
Я же просто спросил. Вам оттуда, извращенцами кажутся одни, а нам, отсюда — совсем другие.

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

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

129. Сообщение от Аноним (129), 11-Ноя-21, 22:22   +/
эта ветка похожа на обработку коммента нейронной сетью.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #132

130. Сообщение от Тот_Самый_Анонимус (?), 12-Ноя-21, 05:14   +/
>Я же просто спросил.

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

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

131. Сообщение от n00by (ok), 12-Ноя-21, 09:03   +/
> А | в именах переменных, внезапно, и так недопустимый символ. Даешь победу
> над этой дискриминацией?

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


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

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

привет пох!


Это именно замшелый джавоскрипт ущемляет права переменных.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #120 Ответы: #135

132. Сообщение от мшефд (?), 12-Ноя-21, 13:24   +/
> эта ветка похожа на обработку коммента нейронной сетью.

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

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

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

135. Сообщение от qweo (?), 12-Ноя-21, 19:16   +/
Есть свободная реализация Рефала?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #131 Ответы: #137

136. Сообщение от Аноним (136), 13-Ноя-21, 02:30   +/
благородный ты чувак
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #114

137. Сообщение от n00by (ok), 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 разряда не собирал даже, есть вопросы по организации "кучи") но свободно скачать и поиграться можно.

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

138. Сообщение от виндотролль (ok), 13-Ноя-21, 16:12   +/
> Нет, не просто.

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

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

139. Сообщение от BLM (?), 14-Ноя-21, 01:26   +/
✊🏿
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21


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

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




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

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