← Kembali ke Atlas Karakter
Literasi Digital

Unicode Tak Terlihat: Spasi, Penyambung, dan Risiko Tersembunyi

Tidak setiap karakter tak terlihat adalah ruang kosong. Pelajari fungsi spasi lebar nol, penyambung, spasi tanpa pemisah, dan kendali arah—serta kapan teks tersembunyi menjadi berbahaya.

Mikroskop karakter

Ubah contoh untuk melihat titik kode yang membentuk tampilan di layar.

Pasangan A–B pertama memuat U+200B ZERO WIDTH SPACE. Pasangan kedua memuat U+2060 WORD JOINER. Keduanya tampak sama, tetapi menyarankan perilaku pemenggalan baris yang berlawanan.

7 titik kode7 unit terlihat
  1. U+0041
  2. U+200B
  3. U+0042
  4. U+0020
  5. U+0041
  6. U+2060
  7. U+0042

Karakter tak terlihat tidak selalu berarti karakter kosong. Ia dapat menandai batas kata, mencegah pemenggalan baris, menyambungkan bentuk huruf, memilih jenis tampilan, atau mengubah arah penyajian teks.

Dua string dapat terlihat sama persis sambil membawa petunjuk yang berbeda.

“Spasi” mencakup beberapa pekerjaan berbeda

U+0020 SPACE adalah spasi papan ketik yang biasa. Unicode juga memiliki karakter spasi lain:

  • U+00A0 NO-BREAK SPACE memiliki lebar yang terlihat, tetapi mencegah pemenggalan baris;
  • U+2009 THIN SPACE memberi jarak tipografis yang lebih sempit;
  • U+3000 IDEOGRAPHIC SPACE menempati satu sel lebar penuh Asia Timur;
  • U+2800 BRAILLE PATTERN BLANK adalah karakter braille tanpa titik timbul, bukan spasi serbaguna.

Semuanya dapat tampak kosong, tetapi lebar, perilaku pemenggalan baris, makna, dan aksesibilitasnya berbeda. Mengganti satu dengan yang lain hanya karena sebuah platform menolak karakter tertentu dapat menghasilkan tata letak yang tidak terduga.

Karakter lebar nol tetap dapat membawa petunjuk

Sebagian karakter format biasanya tidak menggambar glif yang terlihat:

  • U+200B ZERO WIDTH SPACE menyediakan titik pemenggalan tanpa jarak yang terlihat.
  • U+2060 WORD JOINER mencegah pemenggalan tanpa menambah lebar.
  • U+200C ZERO WIDTH NON-JOINER dapat mencegah penyambungan kursif atau ligatur.
  • U+200D ZERO WIDTH JOINER dapat mendorong penyambungan dan juga menghubungkan urutan emoji yang didukung.
  • Pemilih variasi U+FE0E/U+FE0F meminta presentasi teks atau emoji.

Menyebut semuanya “spasi tak terlihat” menghapus perbedaan fungsi. Beberapa di antaranya bahkan bukan spasi.

Dalam aksara dengan pembentukan kontekstual, penyambung dan antipenyambung dapat menjadi bagian dari ejaan atau tipografi yang benar. Menghapusnya tanpa pandang bulu dapat mengubah bentuk atau makna kata.

Kendali arah menyelesaikan masalah multibahasa yang nyata

Bahasa Arab dan Ibrani terutama mengalir dari kanan ke kiri; huruf Latin dan angka sering mengalir dari kiri ke kanan. Unicode Bidirectional Algorithm menentukan bagaimana campuran teks itu ditampilkan. Tanda arah, isolate, embedding, dan override membantu perangkat lunak menangani kasus yang ambigu.

Kendali ini adalah infrastruktur penting bagi teks multibahasa. Namun karena urutan penyimpanan logis dan urutan tampilan visual dapat berbeda, kendali yang ditangani dengan buruk juga dapat membuat teks seolah mengatakan sesuatu yang berbeda dari urutan yang diproses program.

Karena alasan itu, editor kode dan alat keamanan kini memberi perhatian khusus pada kendali dua arah yang tidak seimbang atau tidak terduga.

Mengapa teks salinan dapat sulit dilacak

Karakter tak terlihat sering datang dari:

  • menyalin dokumen berformat atau halaman web;
  • metode masukan papan ketik dan pembentukan bahasa;
  • pemenggalan kata otomatis;
  • urutan emoji;
  • upaya sengaja membuat nama kosong atau tata letak tidak biasa.

Gejalanya mencakup pencarian yang gagal, nama pengguna yang tampak sama, URL yang tidak dianggap setara, pemenggalan baris tak terduga, dan posisi kursor yang seolah “tersangkut.”

Diagnosis yang tepat adalah memeriksa titik kode, bukan berulang kali menekan hapus dan berharap masalahnya hilang.

Karakter tersembunyi dan karakter serupa adalah persoalan keamanan

Unicode mendukung sistem tulisan dunia, sehingga karakter berbeda dapat berbagi glif yang mirip. a Latin dan а Kiril bukan karakter yang sama meskipun sebuah font membuatnya nyaris identik.

Unicode Technical Standard #39 mendefinisikan mekanisme untuk mendeteksi pengenal yang mudah tertukar. Tujuannya adalah mendeteksi risiko, bukan meratakan semua aksara menjadi ASCII. Konteks tetap penting: campuran aksara dalam nama internasional dapat sah, sedangkan campuran serupa dalam domain yang menyerupai bank dapat mencurigakan.

Penelitian tentang “serangan NLP yang tak terasa” juga menunjukkan bahwa penyisipan tersembunyi, substitusi homoglif, pengurutan ulang karakter, dan kendali penghapusan dapat mengubah keluaran pencarian serta sistem pemrosesan bahasa tanpa perubahan visual yang jelas.

Itulah sebabnya alat karakter tersembunyi perlu menjelaskan kegunaan yang sah sekaligus risikonya.

Penggunaan aman dan berisiko

Penggunaan yang wajar mencakup pengujian perenderan teks, memahami isi dokumen, menangani pemenggalan baris, dan memakai kendali penyambungan pada aksara yang memerlukannya.

Penggunaan berisiko tinggi mencakup:

  • menyamarkan tautan atau nama akun;
  • menghindari moderasi atau deteksi duplikat;
  • menyisipkan kendali ke dalam kode sumber;
  • membuat identitas kosong ketika layanan melarangnya;
  • menyembunyikan isi dari pembaca sambil tetap membiarkannya tersedia bagi perangkat lunak.

Bahkan dekorasi yang tidak berbahaya dapat mengganggu aksesibilitas jika pembaca layar berulang kali mengucapkan “kosong” atau nama karakter yang tidak terduga.

Apa yang sebaiknya dilakukan produk

Aplikasi yang menerima pengenal publik sebaiknya mempertimbangkan:

  1. menampilkan peringatan yang terlihat untuk kendali format yang tidak terduga;
  2. membandingkan bentuk normalisasi dan kerangka karakter yang mudah tertukar bila sesuai;
  3. mempertahankan teks multibahasa yang sah alih-alih menghapus rentang Unicode secara luas;
  4. mencatat titik kode dalam alat diagnostik;
  5. memakai daftar yang diizinkan sesuai tujuan pengenal;
  6. memisahkan nama tampilan dari ID akun yang sensitif terhadap keamanan.

Normalisasi, deteksi karakter serupa, dan penghapusan kendali format menyelesaikan masalah yang berbeda. Tidak ada satu tombol “bersihkan Unicode” yang benar untuk semua bahasa dan konteks.

Tak terlihat bukan berarti tak bermakna. Ketiadaan glif dapat menjadi sebuah petunjuk.

Alat karakter tak terlihat memberi label pada setiap karakter yang tersedia beserta perilaku tujuannya. Gunakan untuk pengujian dan kebutuhan tata letak yang sah, bukan untuk memalsukan teks atau menghindari aturan platform.

Sumber dan bacaan lanjutan

  1. Standar
  2. Standar
  3. Standar
  4. Makalah riset
    Bad Characters: Imperceptible NLP Attacks

    Nicholas Boucher, Ilia Shumailov, Ross Anderson, and Nicolas Papernot 2022 IEEE Symposium on Security and Privacy 2022 DOI 10.1109/SP46214.2022.9833641

Komentar

Memuat komentar…