Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP Spoofchecker类_Php_Localization_Internationalization_Intl - Fatal编程技术网

PHP Spoofchecker类

PHP Spoofchecker类,php,localization,internationalization,intl,Php,Localization,Internationalization,Intl,我正在阅读PHP手册,并在文档页面中找到了。到目前为止,类中的方法、它们的参数以及类本身都没有文档记录,所以我想知道它的用途是什么。正如Mark Baker的评论所指出的,SpoofChecker是一种PHP机制,用于在使用Unicode字符串时检测可能的安全问题 由于Unicode包含如此大量的字符,并且包含了世界上各种各样的书写系统,不正确的使用可能会使程序或系统受到可能的安全攻击 来源:该类正在调用,因此您可以找到更多详细信息。那里, 因为Unicode包含大量的字符和 结合了世界上不同的

我正在阅读PHP手册,并在文档页面中找到了。到目前为止,类中的方法、它们的参数以及类本身都没有文档记录,所以我想知道它的用途是什么。

正如Mark Baker的评论所指出的,SpoofChecker是一种PHP机制,用于在使用Unicode字符串时检测可能的安全问题

由于Unicode包含如此大量的字符,并且包含了世界上各种各样的书写系统,不正确的使用可能会使程序或系统受到可能的安全攻击

来源:

该类正在调用,因此您可以找到更多详细信息。那里,

因为Unicode包含大量的字符和 结合了世界上不同的书写系统,使用不当 可能使程序或系统受到可能的安全攻击。这 文档指定了可用于检测可能的故障的机制 安全问题

下面是我使用Spoofchecker类的简短示例代码。我自己还没有把它用于真正的站点,但我认为当您需要从用户输入的URL生成和显示外部链接时,它会很有用。如果恶意用户试图将其他访问者带到假冒网站,而不是谷歌、贝宝、URL shortner等网站,您可能会取消他们之间的链接,或者拒绝其提交

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文档可能会有所帮助(基本上是为了区分和或类似的字符,这可能用于钓鱼)