为什么此文本会绕过正则表达式扫描? [已关闭]

问题描述 投票:0回答:1

诈骗者正在使用这种形式的消息向我们的用户群发消息 (𝕀 𝕒𝕞 𝕧𝕖𝕣𝕪 𝕚𝕟𝕥𝕖𝕣𝕖𝕤𝕥𝕖𝕕。(𝟞𝟟𝟠) -

我的问题:

  1. 为什么消息文本是这样的?这是字体吗?
  2. 这种文本如何绕过手动RegEx文本扫描?我们会扫描每条消息以捕获任何可疑消息。
regex security
1个回答
-2
投票

他们使用的字符,𝔸(数学双击 A (U+1D538))-𝕫(数学双击 z (U+1D56B))是 Unicode 字符的一部分,而不是单独的字体。

如果您在编写正则表达式时没有考虑特殊的 Unicode 字符,那么它们将不会捕获这些字符,因为简单的

/\w/
不会匹配任何这些字符,除非您还指定显式匹配 Unicode(通常在以下位置使用标志
/u
)表达式结尾)。

同样,

/A/
不会匹配
"𝔸"
,因为它们是不同的字符,并且该模式仅匹配该特定字符。

为了不必考虑表示相似字符的所有可能方式,您可以在对它们运行正则表达式之前标准化您的 Unicode。这样,就可以保证一致的表示,并且您将可以更轻松地编写与更广泛的文本匹配的表达式。

© www.soinside.com 2019 - 2024. All rights reserved.