哪些Unicode字符(更准确地说是码点)是危险的,应该被列入黑名单并禁止用户使用?我知道BIDI覆盖字符和“零宽度空格”很容易造成问题,但还有其他哪些字符呢?
谢谢
哪些Unicode字符(更准确地说是码点)是危险的,应该被列入黑名单并禁止用户使用?我知道BIDI覆盖字符和“零宽度空格”很容易造成问题,但还有其他哪些字符呢?
谢谢
字符并不危险:只有不恰当的使用才会造成问题。
您可以考虑阅读以下内容:
如果不了解您所说的“危险”,则无法猜测其含义。
'HANGUL FILLER' (U+3164)
自1993年Unicode 1.1版本以来,有一个空的宽度为零的字符。
我们看不到它,也无法单独复制/粘贴它,因为我们无法选择它!
需要通过unix键盘快捷方式生成:CTRL
+ SHIFT
+ u
+ 3164
它可以很好地处理任何内容:变量、函数名、URL、文件名、模仿DNS、使哈希字符串失效、数据库条目、博客文章、登录、允许伪造相同的账户等。
演示1:更改变量
变量hijacked包含一个韩文填充字符,控制台日志调用不带该字符的变量:
const normal = "Hello w488ld"
const hijaㅤcked = "Hello w488ld"
console.log(normal)
console.log(hijacked)
演示2: 劫持URL
这3个URL将导致xn--stackoverflow-fr16ea.com
:
https://stackㅤㅤoverflow.com