HIBP-PHP est une bibliothèque de compositeurs pour accéder aux API de mots de passe Pwned et Pwned (actuellement V3).
L'API HIBP nécessite désormais une clé API qui doit être achetée sur le site HIBP pour toute recherche qui utilise une adresse e-mail. Cela signifie actuellement que si vous n'utilisez ce package que pour des recherches à partir de la section PwnedPassword de l'API, une clé API n'est pas requise.
La version 5.x a abandonné la prise en charge des anciennes versions PHP ( < 7.4 ). Si vous avez toujours besoin d'une version de ce package pour s'exécuter sur une ancienne version PHP, veuillez utiliser la balise icawebdesign/hibp-php:^4.0 , bien que la branche 4.x ne recevra plus de mises à jour.
La version 6.x nécessite désormais PHP 8.1+ . Si vous devez prendre en charge les versions précédentes de PHP, veuillez utiliser la balise icawebdesign/hibp-php:^5.0 . Cette version ne recevra cependant que des correctifs de sécurité.
composer require icawebdesign/hibp-php: " ^6.0 " Maintenant que nous ciblons un minimum de PHP 8.1 , cela nous donne la possibilité d'utiliser des propriétés en lecture dans des objets. Avec cela, les getters entités ont été supprimés et les propriétés sont désormais accessibles directement sur l'objet.
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ breachSites = $ breach -> getAllBreachSites (); Cela rendra une Collection d'objets BreachSiteEntity .
Ou nous pouvons filtrer pour un domaine dans lequel la violation a été répertoriée:
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ breachSites = $ breach -> getAllBreachSites ( ' adobe.com ' ); Cela rendra une Collection d'objets BreachSiteEntity .
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ breachSite = $ breach -> getBreach ( ' adobe ' ); Cela rendra une seule BreachSiteEntity .
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ dataClasses = $ breach -> getAllDataClasses (); Cela renverra un array de classes de données, par exemple;
[
" 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] ' ); Nous pouvons également récupérer des comptes non vérifiés en spécifiant true pour le deuxième param (non récupéré par défaut):
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ data = $ breach -> getBreachedAccount ( ' [email protected] ' , includeUnverified: true );Nous pouvons également filtrer les résultats à un domaine spécifique violé en ajoutant un domaine comme 3ème param
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 ' ,
); Ces appels rendront une Collection d'objets BreachSiteEntity .
Les méthodes PwnedPasswd peuvent désormais prendre un deuxième paramètre d'un array pour spécifier les options de demande Guzzlehttp.
use Icawebdesign Hibp Password PwnedPassword ;
use Icawebdesign Hibp HibpHttp ;
$ pwnedPassword = new PwnedPassword ( new HibpHttp ( $ apiKey ));
$ count = $ pwnedPassword -> rangeFromHash ( ' 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 ' ); Cela rendra un int du décompte.
Vous pouvez également vérifier les hachages 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 ' ); Vous pouvez également vérifier les hachages NTLM :
use Icawebdesign Hibp Password PwnedPassword ;
use Icawebdesign Hibp HibpHttp ;
$ pwnedPassword = new PwnedPassword ( new HibpHttp ( $ apiKey ));
$ hashData = $ pwnedPassword -> paddedNtlmRangeDataFromHash ( ' 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 ' ); Cela renverra une Collection d'objets de modèle PwnedPassword .
use Icawebdesign Hibp Password PwnedPassword ;
use Icawebdesign Hibp HibpHttp ;
$ pwnedPassword = new PwnedPassword ( new HibpHttp ( $ apiKey ));
$ hashData = $ pwnedPassword -> rangeDataFromHash ( ' 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 ' ); Cela renverra une Collection d'objets de modèle 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 ' ); Cela renverra une Collection d'objets de modèle PwnedPassword .
use Icawebdesign Hibp Paste Paste ;
use Icawebdesign Hibp HibpHttp ;
$ paste = new Paste ( new HibpHttp ( $ apiKey ));
$ data = $ paste -> lookup ( ' [email protected] ' ); Cela rendra une Collection d'objets PasteEntity .
use Icawebdesign Hibp HibpHttp ;
use Icawebdesign Hibp Subscription Subscription ;
$ subscription = new Subscription ( new HibpHttp ( $ apiKey ));
$ status = $ subscription -> status (); Cela renverra un objet SubscriptionStatusEntity
Si vous utilisez le package dans une application Laravel, vous pouvez utiliser les façades fournies. Tout d'abord, vous devez ajouter votre clé API HIBP à votre fichier .env , ou votre méthode préférée pour ajouter des valeurs aux variables d'environnement de votre serveur.
HIBP_API_KEY=abcdefgh123456789
Vous pouvez ensuite utiliser les façades pour appeler les méthodes pertinentes:
// 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 ' );Veuillez consulter Changelog pour plus d'informations ce qui a changé récemment.
Veuillez consulter la contribution pour plus de détails.
Si vous découvrez des problèmes liés à la sécurité, veuillez envoyer un e-mail à [email protected] au lieu d'utiliser le tracker du problème.
Merci à Artem Fomenko d'être le premier contributeur externe à l'emballage fournissant des options de demande pour Guzzle pour les méthodes PwnedPassword.
La licence MIT (MIT). Veuillez consulter le fichier de licence pour plus d'informations.