SaveSaveSaveSave ← Сите водичи
Македонски

Водич · Ризик кај пораки · · Стефан Цезаров · ажурирано

Текстот што не го гледаш

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

Копираш порака.

Изгледа нормално.

Три обични реченици. Ништо чудно.

Ја залепуваш во документ, веб-страница, паричник или AI асистент.

И одеднаш се случува нешто што пораката, како што ја виде, никогаш не изгледаше дека го кажува.

Како?

Бидејќи она што го гледаш на екранот не е нужно сè што е во текстот.

Некои знаци воопшто не заземаат видлив простор.

Сепак се таму.

Сепак може да се копираат, залепуваат, чуваат и обработуваат.

Само не можеш да ги видиш.


Компјутерот не ги гледа буквите како тебе

Кога гледаш реченица, гледаш форми.

Компјутерот гледа податоци.

Буквата A, на пример, е претставена со Unicode знак со одредена кодна точка. Празното место е друг знак. Секоја буква, бројка, интерпункциски знак и многу други симболи имаат сопствено претставување.

Но не секој знак дава видлива форма.

Некои знаци му кажуваат на софтверот како да се однесува текстот.

Можат да му кажат на програма:

Така можеш да имаш два текста што изгледаат идентично, а се различни низи знаци.

Таа разлика може да е важна.

Многу.

Три вида невидлив текст што вреди да ги знаеш

Вклучени се неколку различни механизми, но три се особено корисни за разбирање.

1. Знаци што не се појавуваат

Овие често се викаат знаци со нулта ширина.

Примери се празното место со нулта ширина (zero-width space), поврзувачот со нулта ширина (zero-width joiner) и поврзувачот на зборови (word joiner).

Заземаат позиција во текстот, но не даваат видливи пиксели.

На пример, овие два збора може да изгледаат идентично:

Два збора · едниот не е тоа што изгледа

payment

pay​ment

прв: 7 знацивтор: 8 знаци

Во вториот има невидлив знак.

Веројатно не можеш да го видиш.

Компјутерот може.

Тоа значи дека двете низи всушност не се идентични.

Ова може да влијае врз пребарувања, филтри, кориснички имиња, идентификатори и други системи што ги споредуваат основните знаци, а не она што го гледа човек.

А постои и легитимна причина зошто некои од овие знаци постојат.

Ќе се вратиме на тоа.

2. Знаци што го менуваат редоследот што го гледаш

Некои невидливи знаци влијаат врз насоката на текстот.

Ова е потребно бидејќи јазиците како арапскиот и хебрејскиот се пишуваат од десно кон лево, додека англискиот се пишува од лево кон десно.

Реченица што ги содржи двата може да бара упатства што му кажуваат на софтверот како да се прикажат различните делови.

Тие упатства може да се корисни.

Но може и да се злоупотребат.

Знак за контрола на насоката може да направи знаците зачувани во компјутерот да се појават во друг редослед на екранот.

Тоа создава очигледен безбедносен проблем.

Име на датотека, на пример, може да изгледа дека завршува со една наставка, додека основната низа знаци вели нешто друго.

Истиот принцип може да е важен во изворниот код.

Рецензентот гледа едно.

Компјутерот обработува друго.

3. Знаци што може да носат невидлива порака

Ова е необичниот.

Unicode содржи опсег познат како блокот Tags.

Овие знаци се дизајнирани за означување и обично се невидливи кога се прикажуваат.

Интересниот дел е што поединечните знаци од Tags можат да претставуваат обични ASCII знаци.

Стави доволно од нив заедно и можат да кодираат текст.

Затоа реченица може да содржи дополнителна низа знаци што не се појавува на екранот.

На твоите очи пораката може да изгледа како сосема обичен поздрав.

За софтвер што ги чита основните знаци, таму може да има многу повеќе.

А таа разлика станува особено интересна кога одредиштето е AI асистент.

AI не ја гледа твојата порака како фотографија од екранот.

Ги обработува знаците.

Значи нешто што не можеш да го видиш сепак може да е дел од влезот.

Еве како изгледа тоа

Земи ја оваа реченица:

Send the payment to the address below.

Изгледа нормално, нели?

Сега замисли дека во неа се вметнати невидливи знаци.

На твојот екран сепак може да изгледа вака — а оваа е вистинската, подготвена за да ја пробаш:

Подготвен пример · избери го, копирај го, скенирај го

Send the​ payment⁠ to the​ address below.󠁨󠁩󠁤󠁤󠁥󠁮

видливи знаци: 38вистински знаци: 47разлика: 9

Но под површината компјутерот всушност може да држи дополнителни знаци.

На пример:

Истата реченица, опишана

Што гледаш:

Send the payment to the address below.

Што прима компјутерот:

Send the невидлив payment невидлив … TAGS

Видливата реченица не се сменила.

Основната низа се сменила.

Тоа е важната идеја.

Ист изглед. Различни податоци.

Ако го пуштиш посебно подготвениот пример низ скенер, скенерот може да ги идентификува тие знаци иако твоите очи не можат.

Препиши ја видливата реченица рачно и тие скриени знаци не доаѓаат со неа.

Тоа е целиот трик.

Буквата што не е таа буква

Невидливите знаци не се единствениот проблем.

Понекогаш знакот е сосема видлив.

Само не е знакот што мислиш дека е.

Погледни ги овие два:

Иста форма · различни знаци

savesavesave

sаvesavesave

втора низа, 2. знак: кирилски U+0430не латинскиот U+0061

Речиси е невозможно да се разликуваат.

Но погледни го вториот внимателно.

Вториот знак не е латинската буква a.

Тоа е кирилско а.

Изгледаат слично.

Се различни знаци.

Таа техника е позната како хомоглифски напад.

Истата идеја може да се користи со кориснички имиња, имиња на домени, имиња на токени и други идентификатори.

Лажна сметка може да користи знак двојник.

Лажна страница може да користи домен двојник.

На човек името може да му изгледа познато.

За компјутер тоа е сосема различна низа.

Каде ова навистина може да предизвика проблеми?

Ова не е само чуден трик со Unicode.

Важно е секаде каде што текстот се копира, споредува или се постапува според него.

AI асистенти

Залепуваш порака во AI асистент.

Гледаш прашање.

Основниот текст може да содржи знаци што не ти се видливи.

Бидејќи асистентот го обработува вистинскиот текст, а не само визуелниот изглед, тие знаци стануваат дел од влезот.

Затоа проверките за невидливи знаци може да се корисни пред да залепиш недоверлив текст во систем што може да презема дејства или да обработува чувствителни информации.

Кориснички имиња и имиња на сметки

Две сметки може да изгледаат како да имаат исто име, а да содржат различни знаци.

Тоа може многу да го отежне забележувањето на имитирање.

Линкови и домени

Линкот може да содржи знаци што личат на познати букви.

Името што го препознаваш не е нужно точниот домен што мислиш дека е.

Код

Знаците за контрола на насоката и други необични Unicode знаци можат да го отежнат правилниот преглед на изворниот код.

Програмерот го гледа прикажаниот текст.

Компајлерот ги гледа вистинските знаци.

Пребарување и филтрирање

Филтерот обично споредува низи.

Вметни невидлив знак и низата се менува.

Тоа може да влијае врз пребарувања, листи за блокирање, системи за модерирање и други алатки за обработка на текст.

Како можеш да провериш?

Не мора да станеш експерт за Unicode.

Има неколку едноставни проверки.

ПРОВЕРКА 1 — Скенирај го текстот

Залепи го сомнителниот текст во скенер за безбедност на знаци.

Корисен скенер треба да ти каже:

Тоа е она што скенерот на оваа страница е дизајниран да го покаже.

Важното е да ти каже што навистина нашол, наместо само да ти даде мистериозно зелено или црвено светло.

ПРОВЕРКА 2 — Спореди го бројот на знаци

Ова е брза проверка на здравиот разум.

Ако реченица изгледа дека содржи 38 знаци, а бројач на знаци покажува 47, имаш разлика што вреди да се истражи.

Бројот на знаци нема да ти каже кои се дополнителните знаци.

Но може да ти каже дека таму има нешто што не го гледаш.

ПРОВЕРКА 3 — Препиши го текстот кога е соодветно

Ако некој ти прати кратко упатство и не треба да го зачуваш оригиналното форматирање, рачното пишување на важниот дел може да ги отстрани невидливите знаци од копираниот текст.

Но запомни:

Препишувањето не го прави одредиштето доверливо.

Ако некој ти прати сомнителна веб-адреса, на пример, рачното впишување не докажува дека самата страница е легитимна.

Тоа е само начин да избегнеш скриени знаци во текстот што го копираш.

ПРОВЕРКА 4 — Прочитај го вистинскиот домен

Не потпирај се само на препознавање како изгледа доменот.

Ако линкот е важен, провери го вистинскиот домен.

За важни сметки користи обележувач што веќе си го зачувал или сам впиши ја познатата адреса наместо да следиш неочекуван линк.

Истиот принцип важи за кориснички имиња и адреси на паричници:

препознавањето на формата не е исто што и проверката на знаците.

Не паничи кога ќе најдеш невидлив знак

Ова е важно.

Невидливо не значи автоматски злонамерно.

Некои невидливи Unicode знаци постојат бидејќи луѓето навистина имаат потреба од нив.

Поврзувачите со нулта ширина, на пример, можат да влијаат врз тоа како се поврзуваат знаците во разни писма.

Се користат и во низи емоџи.

Знаците за контрола на насоката се потребни за правилно прикажување текст што меша писма од лево кон десно и од десно кон лево.

Затоа наоѓањето невидлив знак не значи автоматски:

„Ова е напад.“

Значи:

Тука има нешто што не можам да го видам.

Што значи тоа зависи од контекстот.

Кој го прати текстот?

Што бара текстот од тебе?

Каде си на пат да го залепиш?

Дали оди во AI асистент, паричник, веб-страница, терминал или друг систем што ќе постапи според него?

Тие прашања се важни.

Блокот Tags заслужува посебно внимание

Знаците од Tags се необични бидејќи нивната намена е да претставуваат информации, а да останат невидливи при нормално прикажување текст.

Ако непознат ти прати порака што содржи неочекувана низа од нив, вреди да се истражи.

Скенерот може да открие дека знаците постојат и, каде што е соодветно, да го декодира текстот што го претставуваат.

Но и тогаш, откривањето не ти ја кажува намерата на испраќачот.

Ти кажува што има во текстот.

Тоа е многу покорисен и поодбранлив одговор.

Што ти кажува — и што не — чистото скенирање

Ова е уште едно место каде безбедносните алатки треба да бидат искрени.

Скенерот открива знаци.

Не чита мисли.

Ако скенерот најде невидливи знаци, може да ти каже кои се.

Не може да ти каже кој ги вметнал.

Не може да докаже зошто се вметнати.

А ако не најде ништо, тоа не значи дека самата порака е доверлива.

Сосема нормална реченица сепак може да содржи лага, злонамерен линк или опасно упатство.

Исто така, порака што содржи невидлив знак може да е сосема безопасна.

Постојат и ограничувања на автоматското откривање хомоглифи. Скенерот може да ги провери познатите знаци двојници и познатите множества знаци, но ниту една поединечна проверка не треба да се смета за гаранција дека е најдена секоја можна визуелна измама.

Резултатот ти кажува што е откриено.

Сепак ти треба да одлучиш што значи текстот и дали му веруваш на неговиот извор.

Едноставната навика што вреди да ја изградиш

Не мора да се плашиш од копирање и залепување.

Само забави кога текстот што го копираш е на пат да направи нешто да се случи.

AI асистент.

Паричник.

Веб-страница.

Командна линија.

Сметка.

Финансиска трансакција.

Парче код.

Ако текстот не си го напишал сам, не знаеш нужно сè што е во него.

И не мора да погодуваш.

Провери ги знаците пред да им дозволиш да постапат.

Трае неколку секунди.

А во многу случаи проверката е бесплатна.


Оваа статија е само за едукативни цели. Објаснува како невидливите Unicode знаци, контролите за насока на текстот и знаците двојници можат да влијаат врз дигиталниот текст. Примерот на оваа страница содржи намерно вметнати невидливи знаци за да можеш сам да го испиташ механизмот. Скриениот текст е безопасен и постои само за демонстрација.

Невидливите знаци преживуваат копирање и залепување, па скенерот ги гледа во секој случај. За да го прескокнеш залепувањето, користи го обележувачот за скенирање избран текст.