我正在阅读PHP手册,发现在intl扩展文档页面中有一个名为
Spoofchecker
类。目前该类的方法、参数以及类本身都没有很详细的文档说明,因此我想知道它的用途是什么。Spoofchecker
类。目前该类的方法、参数以及类本身都没有很详细的文档说明,因此我想知道它的用途是什么。以下是我使用Spoofchecker类的简短示例代码。我自己尚未在实际网站中使用过它,但我认为当您需要从用户输入的URL生成和显示外部链接时,它可能会很有用。如果恶意人员试图将其他访问者带到Google、Paypal、URL缩短器等虚假网站,您可以取消链接或拒绝其提交。由于Unicode包含如此众多的字符并且涵盖了世界上各种书写系统,因此不正确的使用可能会使程序或系统面临可能的安全攻击。本文档指定了可用于检测可能安全问题的机制。
if(!extension_loaded('intl') || !class_exists("Spoofchecker")) {
exit ('turn on php_intl extension first');
}
$checker = new Spoofchecker();
// false: all letters are in ASCII
var_dump($checker->isSuspicious("goog1e.com"));
// true: the first Cyrillic letter is from different set
var_dump($checker->isSuspicious("Рaypal.com"));
// true: digit one instead of small L
var_dump(
$checker->areConfusable(
'google.com',
'goog1e.com'
)
);
// false: digit zero and small O are not confusable
var_dump(
$checker->areConfusable(
'google.com',
'g00g1e.com'
)
);
// true: Cyrillic letter instead of P
var_dump(
$checker->areConfusable(
'Рaypal.com',
'Paypal.com'
)
);
// true: Japanese Katakana and Hiragana 'he'
var_dump(
$checker->areConfusable(
'ヘいせい.com',
'ヘいせい.com'
)
);
// true: identical detected as confusable so you might check === first
var_dump(
$checker->areConfusable(
'google.com',
'google.com'
)
);