HIBP-PHP是一家作曲家库,用于访问我已被pwned和PWNED密码API(当前V3)。
HIBP API现在需要一个API密钥,需要在HIBP网站购买任何使用电子邮件地址的查找。目前,这意味着,如果您仅在API的PWNEDPassword部分中使用此软件包进行查找,则不需要API密钥。
版本5.x已删除对较旧的PHP版本的支持( < 7.4 )。如果您仍然需要此软件包的版本才能在较旧的PHP版本上运行,请使用icawebdesign/hibp-php:^4.0 TAG,尽管4.x分支将不再接收更新。
6.x版本现在需要PHP 8.1+ 。如果您需要支持PHP的先前版本,请使用icawebdesign/hibp-php:^5.0 TAG。但是,此版本只会接收安全修复程序。
composer require icawebdesign/hibp-php: " ^6.0 " 现在,我们将目标定为最低php 8.1 ,这使我们能够利用对象中的可读属性。这样,已经删除了实体getter,现在可以直接在对象上访问属性。
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ breachSites = $ breach -> getAllBreachSites ();这将返回BreachSiteEntity对象的Collection 。
或者我们可以过滤以列出漏洞以下域:
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ breachSites = $ breach -> getAllBreachSites ( ' adobe.com ' );这将返回BreachSiteEntity对象的Collection 。
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ breachSite = $ breach -> getBreach ( ' adobe ' );这将返回单个BreachSiteEntity 。
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ dataClasses = $ breach -> getAllDataClasses ();这将返回array数据类,例如;
[
" Account balances " ,
" Address book contacts " ,
" Age groups " ,
" Ages " ,
...
] use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ data = $ breach -> getBreachedAccount ( ' [email protected] ' );我们也可以通过为第二个参数指定true (默认情况下检索)来检索未验证的帐户:
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ data = $ breach -> getBreachedAccount ( ' [email protected] ' , includeUnverified: true );我们还可以通过添加一个域作为第3个参数来将结果滤回到特定的破坏域
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ data = $ breach -> getBreachedAccount (
' [email protected] ' ,
includeUnverified: true ,
domainFilter: ' adobe.com ' ,
);这些呼叫将返回BreachSiteEntity对象的Collection 。
现在, PwnedPasswd方法可以使用array的第二个参数来指定GuzlesHTTP请求选项。
use Icawebdesign Hibp Password PwnedPassword ;
use Icawebdesign Hibp HibpHttp ;
$ pwnedPassword = new PwnedPassword ( new HibpHttp ( $ apiKey ));
$ count = $ pwnedPassword -> rangeFromHash ( ' 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 ' );这将返回int 。
您也可以检查NTLM哈希:
use Icawebdesign Hibp Password PwnedPassword ;
use Icawebdesign Hibp HibpHttp ;
$ pwnedPassword = new PwnedPassword ( new HibpHttp ( $ apiKey ));
$ count = $ pwnedPassword -> ntlmRangeFromHash ( ' 8846F7EAEE8FB117AD06BDD830B7586C ' ); use Icawebdesign Hibp Password PwnedPassword ;
use Icawebdesign Hibp HibpHttp ;
$ pwnedPassword = new PwnedPassword ( new HibpHttp ( $ apiKey ));
$ hashData = $ pwnedPassword -> paddedRangeDataFromHash ( ' 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 ' );您也可以检查NTLM哈希:
use Icawebdesign Hibp Password PwnedPassword ;
use Icawebdesign Hibp HibpHttp ;
$ pwnedPassword = new PwnedPassword ( new HibpHttp ( $ apiKey ));
$ hashData = $ pwnedPassword -> paddedNtlmRangeDataFromHash ( ' 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 ' );这将返回PwnedPassword模型对象的Collection 。
use Icawebdesign Hibp Password PwnedPassword ;
use Icawebdesign Hibp HibpHttp ;
$ pwnedPassword = new PwnedPassword ( new HibpHttp ( $ apiKey ));
$ hashData = $ pwnedPassword -> rangeDataFromHash ( ' 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 ' );这将返回PwnedPassword模型对象的Collection 。
use Icawebdesign Hibp Password PwnedPassword ;
use Icawebdesign Hibp HibpHttp ;
$ pwnedPassword = new PwnedPassword ( new HibpHttp ( $ apiKey ));
$ hashData = $ pwnedPassword -> paddedRangeDataFromHash ( ' 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 ' );
// Strip padded values from results
$ hashData = PwnedPassword:: stripZeroMatchesData ( $ hashData , ' 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 ' );这将返回PwnedPassword模型对象的Collection 。
use Icawebdesign Hibp Paste Paste ;
use Icawebdesign Hibp HibpHttp ;
$ paste = new Paste ( new HibpHttp ( $ apiKey ));
$ data = $ paste -> lookup ( ' [email protected] ' );这将返回一个PasteEntity对象的Collection 。
use Icawebdesign Hibp HibpHttp ;
use Icawebdesign Hibp Subscription Subscription ;
$ subscription = new Subscription ( new HibpHttp ( $ apiKey ));
$ status = $ subscription -> status ();这将返回SubscriptionStatusEntity对象。
如果在Laravel应用程序中使用包裹,则可以使用提供的立面。首先,您需要将HIBP API密钥添加到.env文件中,或者您首选的方法将值添加到服务器环境变量中。
HIBP_API_KEY=abcdefgh123456789
然后,您可以使用外墙来调用相关方法:
// Breach
use Icawebdesign Hibp Facades Breach ;
$ breachSites = Breach:: getAllBreachSites ();
// Paste
use Icawebdesign Hibp Facades Paste ;
$ paste = Paste:: lookup ( ' [email protected] ' );
// PwnedPassword
use Icawebdesign Hibp Facades PwnedPassword ;
$ count = PwnedPassword:: rangeFromHash ( ' 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 ' );有关更多信息,请参阅ChangElog最近发生了什么变化。
请有关详细信息,请参阅贡献。
如果发现任何与安全有关的问题,请发送电子邮件至[email protected],而不是使用问题跟踪器。
感谢Artem Fomenko是为PwnedPassword方法提供guzzle的包裹的第一个外部贡献者。
麻省理工学院许可证(麻省理工学院)。请参阅许可证文件以获取更多信息。