眼見不一定為憑–零寬度字元(空格)

前幾天,噗友黃信溢老師在 FB 上發佈了個有關縮網址(源自 免費資源網路社群:消失的短網址?Zero Width Shortener 讓網址縮短到幾乎沒有長度)的訊息:
https://www.facebook.com/groups/1399641346792035/permalink/2511439632278862/

這個消息引起了不少人的注意,也引起了我的注意,一樣的縮網址,卻被導到不同的網站,而 被縮的網址 卻看不到!

引起我注意的點是:我的手機顯示 與 電腦顯示 出來的畫面,卻是不同!(兩者皆使用 Firefox)

  • 手機畫面
  • 電腦畫面

當時,還沒讀 免費資源網路社群:消失的短網址?Zero Width Shortener 讓網址縮短到幾乎沒有長度 這篇文章,但心中只單純想知道為何兩個不同裝置呈現出來結果不一樣。

於是我便把以上兩個看起來相同實際卻不同的縮網址,以滑鼠停在上面,「按右鍵」,「另存網路連結」的方式,分別將他們所指向的網址存了下來:

  1. 第一個
  2. https://zws.im/%E2%80%8B%E2%80%8B%E2%80%8B%E2%80%8C%E2%80%8B%E2%80%8C%E2%80%8B%E2%80%8B%E2%80%8B%E2%80%8B%E2%80%8B%E2%80%8C%E2%80%8C%E2%80%8B/?fbclid=IwAR2jgUoZLDG5UxP_6DP1z0mdUmK0cQD334WH8ze5XE3uvzQrsF20F04rLy4

  3. 第二個
  4. https://zws.im/%E2%80%8B%E2%80%8B%E2%80%8B%E2%80%8C%E2%80%8B%E2%80%8C%E2%80%8B%E2%80%8B%E2%80%8B%E2%80%8B%E2%80%8B%E2%80%8C%E2%80%8B%E2%80%8C/?fbclid=IwAR1FQ1UOuPpqcT3xC7AoxZ5EuU2P-poY_HKKlUfU7wF5o8HLdd-gszkzTc0

扣掉「 /?fbclid=xxxxxx 」這段被 FB 加料的訊息不看,可以看到許多貌似「天書」的符號,呃~其實那是被重新編碼過的符號,主要是將目的網址重新編碼過,一方面可加快網路傳遞速度,二方面可以避免有些電腦系統讀不懂訊息,三方面將訊息打亂成非人眼辨識狀態,也可達到「訊息隱蔽」的目的。

有興趣或是有需要的人,可以到以下網站「玩」一下:
https://codebeautify.org/url-encode-string

在我玩了一陣子後,發現依然無法解答「看不到」網址的祕密。


後來讀了以下三篇文章後,才慢慢了解,其實「zws.im」這個網站,其實他還是做「縮網址」的動作,只是他是用「看不見」的電腦字元來取代「人眼可見」的字元,因為人眼看不見,常會以為是「空格」,所以就被說成「無寬度空格」,正確應該說是「看不見的字元」。

若有興趣想玩的話,可以到這個網站來玩:https://yuanfux.github.io/zero-width-web/

甚至可以把整個系統,抓回去研究:https://github.com/yuanfux/zero-width-lib

而這件事之後,也有衍生出「資安疑慮」的話題!

而我認為這是「假議題」。

我的看法是,只要有做「轉址」動作,便有「資安疑慮」。不管網址是看得到還是看不到。不然,就算你看得到縮址之後的內容,難道就比較不會被騙嗎?

那~透過 QR Code 圖片轉址,我們也看得到,難道人眼可以辨識出兩張不同圖片嗎?但大家還不是照用!

相對比較安全的作法,便是「信任」機制的建立!例如政府單位,中立單位(團體,企業),不然就是自己來!


參考資源:

  1. 免費資源網路社群:消失的短網址?Zero Width Shortener 讓網址縮短到幾乎沒有長度
  2. https://codebeautify.org/url-encode-string
  3. https://zh.wikipedia.org/wiki/%E9%9B%B6%E5%AE%BD%E7%A9%BA%E6%A0%BC
  4. http://coinfaces.me/posts/the-zero-width-space/
  5. https://juejin.im/post/5b87a6e26fb9a019b953ee8b
  6. https://yuanfux.github.io/zero-width-web/
  7. https://github.com/yuanfux/zero-width-lib
  8. https://stackoverflow.com/questions/6907297/can-utf-8-contain-zero-byte

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

*