我正在使用Nano ID生成唯一字串,以安全地區分從產品引數自動生成的 URL,因此可能會出現重復。引數的順序是嚴格的(想想“../manufacturer-model-type-whateverz-nanoid.html”),它們用連字符分隔。Nano ID 在其字母/字典中使用連字符,這會破壞“連字符邏輯”,所以我想用等號替換 Nano ID 連字符。我覺得是安全的,只要不干擾?key=values。所以沒關系,還是有其他事情會讓我三思而后行?畢竟,等號也可以在 NanoID 字母表中,但出于某種原因,它們不是。
uj5u.com熱心網友回復:
根據RFC1738:
方案名稱由一系列字符組成。允許使用小寫字母“a”--“z”、數字以及字符加號(“ ”)、句點(“.”)和連字符(“-”)。為了彈性,解釋 URL 的程式應該將大寫字母視為等同于方案名稱中的小寫字母(例如,允許“HTTP”以及“http”)。
它還指出,所有其他字符都被認為是不安全的,必須進行編碼。所以不要使用等號代替連字符。
相反,請使用 Nanoid 的自定義字母表,該字母表僅包含nanoid 自述檔案中描述的字母和數字
import { customAlphabet } from 'nanoid'
const nanoid = customAlphabet('1234567890abcdef', 10)
model.id = nanoid() //=> "4f90d13a42"
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/507432.html
標籤:javascript 网址 纳米类
上一篇:如何正確決議網址
下一篇:如何使用React下載影像?
