Spoofchecker 类

(PHP 5 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

简介

提供此类是因为 Unicode 包含大量字符,并包含世界上各种各样的书写系统,其不正确使用可能会使程序或系统暴露于可能使用字符相似性的安全攻击。

提供的方法允许检查单个字符串是否可能是混淆读者的尝试(欺骗检测),例如用西里尔字母 'а' 字符拼写的 "pаypаl"。

类概要

class Spoofchecker {
/* 常量 */
public const int ANY_CASE;
public const int SINGLE_SCRIPT;
public const int INVISIBLE;
public const int CHAR_LIMIT;
public const int ASCII;
public const int HIGHLY_RESTRICTIVE;
public const int UNRESTRICTIVE;
public const int MIXED_NUMBERS;
public const int HIDDEN_OVERLAY;
/* 方法 */
public __construct()
public areConfusable(string $string1, string $string2, int &$errorCode = null): bool
public isSuspicious(string $string, int &$errorCode = null): bool
public setAllowedLocales(string $locales): void
public setChecks(int $checks): void
public setRestrictionLevel(int $level): void
}

目录

添加注释

用户贡献的注释 2 个注释

匿名
7 年前
来自 http://icu-project.org/apiref/icu4j/com/ibm/icu/text/SpoofChecker.html
SINGLE_SCRIPT_CONFUSABLE:表示两个字符串在视觉上是可混淆的,并且它们来自同一个脚本
MIXED_SCRIPT_CONFUSABLE:表示两个字符串在视觉上是可混淆的,并且它们不是来自同一个脚本
WHOLE_SCRIPT_CONFUSABLE:表示两个字符串在视觉上是可混淆的,并且它们不是来自同一个脚本,但它们都是单脚本字符串
ANY_CASE:已弃用。
SINGLE_SCRIPT:已弃用。
INVISIBLE:检查标识符中是否存在不可见字符,例如零宽度空格,或可能不会显示的字符序列,例如多个相同的非间距标记。
CHAR_LIMIT:检查标识符是否仅包含来自指定的一组可接受字符的字符。

在 UTS 39 第 4 节中解释了整个脚本、混合脚本和单脚本可混淆字符:http://unicode.org/reports/tr39/#Confusable_Detection

来自 Java SpoofChecker 类的详细信息,位于 http://icu-project.org/apiref/icu4j/com/ibm/icu/text/SpoofChecker.html
匿名
6 年前
当使用整个脚本可混淆字符 (WSC) 和混合脚本可混淆字符 (MSC) 检查时,Spoofchecker 默认情况下会产生误报。
它们从 ICU 58 开始已弃用
http://bugs.icu-project.org/trac/ticket/12549#comment:10

解决方法:将 ICU 升级到 58+,或使用 Spoofcheckers 的 setChecks() 函数避免使用 MSC 和 WSC 检查。
To Top