Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

網址特殊字元轉換

Posted on 2013 年 12 月 11 日2021 年 3 月 12 日 By 日落 在〈網址特殊字元轉換〉中尚無留言

最近發現有釣魚連結將全形句號當作半形句號使用,但貼到瀏覽器網址列後,瀏覽器卻會自動轉成正常的網址格式。

如使用全形符號:

http://blog.zeroplex。tw

貼到瀏覽器以後會被自動轉換為:

http://blog.zeroplex.tw

這個方法可以繞過一些論壇、網站的檢查工具,雖然不會被系統加上 <a>,但若有人手動複製連結到瀏覽器上,還是被釣魚。

實在不解為什麼瀏覽器要這麼自作聰明,於是下載了 Firefox source code 來看。

在 grep “。” 找到的資料多與網址轉換無關,但可以發現一些符號對應表,其中程式多半以「x3002」表示,且註記都會加上「full stop」。改 grep 3002 | grep \.c,可以發現 netwerk/dns/nsIDNService.cpp 是與 DNS 有關,且同時提到 U+3002、「full stop」,打開來看 line 642:

// RFC 3490
// 1) Whenever dots are used as label separators, the following characters
//    MUST be recognized as dots: U+002E (full stop), U+3002 (ideographic full
//    stop), U+FF0E (fullwidth full stop), U+FF61 (halfwidth ideographic full
//    stop).

意思是當遇到以下符號時,直接視為英文的句點「.」,也就是網址打全形符號自動轉換已在 RFC 3490 規定。

  • U+002E:「.」
  • U+3002:「。」
  • U+FF0E:「.」
  • U+FF61:「。」

以後要判斷網址是否正確時,還是把這段規則一起加進去吧。

Ref:
RFC 3490
http://www.ietf.org/rfc/rfc3490.txt

Tags:資訊學習

文章導覽

Previous Post: Setting Composer Autoload on FuelPHP
Next Post: Chrome 透過 console.dir() 取得 javascript 物件屬性

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


其他

關於我  (About me)

小額贊助

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.