HIBP-PHP es una biblioteca de compositor para acceder a las API de contraseñas de PWNED y PWNED (actualmente V3).
La API de HIBP ahora requiere una clave API que debe comprarse en el sitio de HIBP para cualquier búsqueda que use una dirección de correo electrónico. Actualmente, esto significa que si solo está usando este paquete para las búsquedas de la sección PwnedPassword de la API, entonces no se requiere una clave API.
La versión 5.x ha eliminado el soporte para versiones PHP más antiguas ( < 7.4 ). Si aún necesita una versión de este paquete para ejecutarse en una versión PHP anterior, use la etiqueta icawebdesign/hibp-php:^4.0 , aunque la sucursal 4.x ya no recibirá actualizaciones.
La versión 6.x ahora requiere PHP 8.1+ . Si necesita admitir versiones anteriores de PHP, utilice la etiqueta icawebdesign/hibp-php:^5.0 . Sin embargo, esta versión solo recibirá correcciones de seguridad.
composer require icawebdesign/hibp-php: " ^6.0 " Ahora que estamos apuntando a un mínimo de PHP 8.1 , esto nos da la capacidad de utilizar propiedades de lectura en objetos. Con esto, se han eliminado los getters de la entidad y ahora se puede acceder a las propiedades directamente en el objeto.
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ breachSites = $ breach -> getAllBreachSites (); Esto devolverá una Collection de objetos BreachSiteEntity .
O podemos filtrar para un dominio en el que se enumeró la violación:
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ breachSites = $ breach -> getAllBreachSites ( ' adobe.com ' ); Esto devolverá una Collection de objetos BreachSiteEntity .
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ breachSite = $ breach -> getBreach ( ' adobe ' ); Esto devolverá un solo BreachSiteEntity .
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ dataClasses = $ breach -> getAllDataClasses (); Esto devolverá una array de clases de datos, por ejemplo;
[
" 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] ' ); También podemos recuperar cuentas no verificadas especificando true para el segundo parámetro (no recuperado por defecto):
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ data = $ breach -> getBreachedAccount ( ' [email protected] ' , includeUnverified: true );También podemos filtrar los resultados de nuevo a un dominio violado específico agregando un dominio como el tercer parámetro
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 ' ,
); Estas llamadas devolverán una Collection de objetos BreachSiteEntity .
Los métodos PwnedPasswd ahora pueden tomar un segundo parámetro de una array para especificar opciones de solicitud GUZZLEHTTP.
use Icawebdesign Hibp Password PwnedPassword ;
use Icawebdesign Hibp HibpHttp ;
$ pwnedPassword = new PwnedPassword ( new HibpHttp ( $ apiKey ));
$ count = $ pwnedPassword -> rangeFromHash ( ' 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 ' ); Esto devolverá un int of the Count.
También puede consultar con los hashes 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 ' ); También puede consultar con los hashes NTLM :
use Icawebdesign Hibp Password PwnedPassword ;
use Icawebdesign Hibp HibpHttp ;
$ pwnedPassword = new PwnedPassword ( new HibpHttp ( $ apiKey ));
$ hashData = $ pwnedPassword -> paddedNtlmRangeDataFromHash ( ' 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 ' ); Esto devolverá una Collection de objetos del modelo PwnedPassword .
use Icawebdesign Hibp Password PwnedPassword ;
use Icawebdesign Hibp HibpHttp ;
$ pwnedPassword = new PwnedPassword ( new HibpHttp ( $ apiKey ));
$ hashData = $ pwnedPassword -> rangeDataFromHash ( ' 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 ' ); Esto devolverá una Collection de objetos del modelo 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 ' ); Esto devolverá una Collection de objetos del modelo PwnedPassword .
use Icawebdesign Hibp Paste Paste ;
use Icawebdesign Hibp HibpHttp ;
$ paste = new Paste ( new HibpHttp ( $ apiKey ));
$ data = $ paste -> lookup ( ' [email protected] ' ); Esto devolverá una Collection de objetos PasteEntity .
use Icawebdesign Hibp HibpHttp ;
use Icawebdesign Hibp Subscription Subscription ;
$ subscription = new Subscription ( new HibpHttp ( $ apiKey ));
$ status = $ subscription -> status (); Esto devolverá un objeto SubscriptionStatusEntity .
Si usa el paquete dentro de una aplicación Laravel, puede usar las fachadas proporcionadas. Primero, debe agregar su clave de API HIBP a su archivo .env o su método preferido para agregar valores a las variables de entorno de su servidor.
HIBP_API_KEY=abcdefgh123456789
Luego puede usar las fachadas para llamar a los métodos relevantes:
// 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 ' );Consulte ChangeLog para obtener más información lo que ha cambiado recientemente.
Consulte contribuyendo para obtener más detalles.
Si descubre algún problema relacionado con la seguridad, envíe un correo electrónico a [email protected] en lugar de usar el rastreador de problemas.
Gracias a Artem Fomenko por ser el primer contribuyente externo al paquete que proporciona opciones de solicitud para Guzzle para los métodos de PwnedPassword.
La licencia MIT (MIT). Consulte el archivo de licencia para obtener más información.