HIBP-PHP-это библиотека композиторов для доступа к API-интерфейсам паролей, которые я был подписан и PWNED (в настоящее время V3).
API HIBP теперь требует ключа API, который необходимо приобрести на сайте HIBP для любых поисков, которые используют адрес электронной почты. В настоящее время это означает, что если вы используете этот пакет только для поиска в разделе PwnedPassword от API, то ключ API не требуется.
Версия 5.x отказалась от поддержки старых версий PHP ( < 7.4 ). Если вам все еще нужна версия этого пакета, чтобы запустить более старую версию PHP, то используйте тег icawebdesign/hibp-php:^4.0 , хотя филиал 4.x больше не будет получать обновления.
Версия 6.x теперь требует PHP 8.1+ . Если вам нужно поддержать предыдущие версии PHP, используйте тег icawebdesign/hibp-php:^5.0 . Эта версия, однако, будет получать только исправления безопасности.
composer require icawebdesign/hibp-php: " ^6.0 " Теперь, когда мы нацелены на минимум PHP 8.1 , это дает нам возможность использовать свойства Readonly в объектах. При этом объекты Getters были удалены, и теперь можно получить доступ непосредственно на объекте.
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ breachSites = $ breach -> getAllBreachSites (); Это вернет Collection объектов BreachSiteEntity .
Или мы можем отфильтровать для домена, нарушение было указано в:
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ breachSites = $ breach -> getAllBreachSites ( ' adobe.com ' ); Это вернет Collection объектов BreachSiteEntity .
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 ' ,
); Эти вызовы вернут Collection объектов BreachSiteEntity .
Методы PwnedPasswd теперь могут занять второй параметр array , чтобы указать параметры запроса guzzehttp.
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 ' ); Это вернет Collection объектов модели PwnedPassword .
use Icawebdesign Hibp Password PwnedPassword ;
use Icawebdesign Hibp HibpHttp ;
$ pwnedPassword = new PwnedPassword ( new HibpHttp ( $ apiKey ));
$ hashData = $ pwnedPassword -> rangeDataFromHash ( ' 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 ' ); Это вернет Collection объектов модели PwnedPassword .
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 ' ); Это вернет Collection объектов модели PwnedPassword .
use Icawebdesign Hibp Paste Paste ;
use Icawebdesign Hibp HibpHttp ;
$ paste = new Paste ( new HibpHttp ( $ apiKey ));
$ data = $ paste -> lookup ( ' [email protected] ' ); Это вернет Collection объектов PasteEntity .
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 за то, что он был первым внешним участником пакета, предоставляющего варианты запроса для Guzzle для методов PwnedPassword.
Лицензия MIT (MIT). Пожалуйста, смотрите файл лицензии для получения дополнительной информации.