驗證 JID(通用)
與電子郵件不同,JID 使用國際化(i18n)定義,使用國際化字串的準備,執行和比較(PRECIS)框架。PRECIS(在 RFC 7564 中定義 )是一個在各種環境中安全地比較字串的框架。例如,假設你在群聊中註冊了暱稱 Richard IV
(拉丁語大寫字母 I,Vee):使用 PRECIS 聊天應用程式可以確保沒有其他人出現並註冊暱稱“RichardⅣ”(Unicode Roman 數字 4)並用它來冒充你。
用於驗證已分割為其 localpart,domainpart 和 resourcepart 的 JID 的演算法(請參閱: 拆分 JID(通用) 以獲取有關從字串中提取 JID 部分的資訊),如下所示:
Validations
步驟應執行以下操作:
- 檢查 localpart 是否小於 1024 位元組(位元組,不是字形)
- 檢查 localpart 是否包含
"&'/:<>@
中的任何一個 - 檢查 resourcepart 是否小於 1024 位元組
- 檢查 domainpart 是否大於零位元組且小於 1024 位元組(並且可能驗證域的各個部分是否符合 DNS 要求)
- 如果域是有效的 IPv6 地址,則繼續使用括號表示法(例如,
[::1]
而不是::1
)