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的包裹的第一個外部貢獻者。
麻省理工學院許可證(麻省理工學院)。請參閱許可證文件以獲取更多信息。