PHP Spoofchecker类
我正在阅读PHP手册,并在文档页面中找到了。到目前为止,类中的方法、它们的参数以及类本身都没有文档记录,所以我想知道它的用途是什么。正如Mark Baker的评论所指出的,SpoofChecker是一种PHP机制,用于在使用Unicode字符串时检测可能的安全问题 由于Unicode包含如此大量的字符,并且包含了世界上各种各样的书写系统,不正确的使用可能会使程序或系统受到可能的安全攻击 来源:该类正在调用,因此您可以找到更多详细信息。那里, 因为Unicode包含大量的字符和 结合了世界上不同的书写系统,使用不当 可能使程序或系统受到可能的安全攻击。这 文档指定了可用于检测可能的故障的机制 安全问题 下面是我使用Spoofchecker类的简短示例代码。我自己还没有把它用于真正的站点,但我认为当您需要从用户输入的URL生成和显示外部链接时,它会很有用。如果恶意用户试图将其他访问者带到假冒网站,而不是谷歌、贝宝、URL shortner等网站,您可能会取消他们之间的链接,或者拒绝其提交PHP Spoofchecker类,php,localization,internationalization,intl,Php,Localization,Internationalization,Intl,我正在阅读PHP手册,并在文档页面中找到了。到目前为止,类中的方法、它们的参数以及类本身都没有文档记录,所以我想知道它的用途是什么。正如Mark Baker的评论所指出的,SpoofChecker是一种PHP机制,用于在使用Unicode字符串时检测可能的安全问题 由于Unicode包含如此大量的字符,并且包含了世界上各种各样的书写系统,不正确的使用可能会使程序或系统受到可能的安全攻击 来源:该类正在调用,因此您可以找到更多详细信息。那里, 因为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'
)
);
您可以检查哪些字符被认为是可混淆的。的java文档可能会有所帮助(基本上是为了区分和或类似的字符,这可能用于钓鱼)