隱形字元偵測¶
為什麼文字裡會有看不見的東西¶
文件外流追蹤¶
機構要發一份文件給二十個人,於是準備二十份副本,每一份在不同的位置插入不同組合的零寬字元。內容看起來完全一樣,列印出來也一樣,複製貼上到別的地方那些字元還是跟著走。文件外流之後,比對一下就知道是哪一份流出去的。
這不是假想的手法。要轉發手上的文件之前,先掃一遍。
釣魚網址¶
аpple.com 跟 apple.com 看起來一樣,前者的第一個字母是西里爾文的 а。網域註冊商對這件事的防範不一致,而人眼分辨不出來。
程式碼裡的方向覆寫¶
在原始碼裡放一個右至左覆寫字元,人在編輯器裡看到的順序跟編譯器讀到的可以完全不同。註解看起來包住了一段程式碼,實際上沒有。這類手法有個名字叫 Trojan Source。
誤判是這個工具最需要小心的地方¶
不是所有隱形字元都有問題。
👨👩👧 這個 emoji 是三個 emoji 用兩個零寬連字接起來的,那些連字非有不可。變體選擇器是 emoji 的一部分。阿拉伯文與希伯來文本來就需要方向標記。整段俄文裡的 а 就只是俄文。
全部報成可疑的話,這個工具會變成狼來了,看幾次之後就沒有人看了。所以它分兩級:橘色是不必看語境就可疑的,灰色是要看前後才知道的。emoji 裡的連字、有 RTL 文字時的方向標記,都不會被報成可疑。
測試裡有一整組案例守著這件事,跟「抓得到」那組一樣多。
清理¶
兩個按鈕。一個只清可疑的那些,emoji 保持完整。另一個清掉所有看不見的字元,那會把 emoji 家族拆散,但如果你要的是一份絕對乾淨的文字,那個比較保險。
同形字不會被自動換掉。那是可見的字,換掉會改變原意,而你可能正在處理一段真的俄文。工具只標出位置與它長得像哪個拉丁字母,換不換由你決定。
離線可用¶
跟這一區其他工具一樣,程式存進裝置之後沒有網路也能用。你貼進來的可能正是不想外流的東西,所以這一頁沒有任何網路請求,也不把文字寫進任何儲存。斷網時照樣可以用,那是最直接的證明。
要把這一頁帶著走,見離線閱讀。