O HIBP-PHP é uma biblioteca de compositora para acessar as APIs de senhas D-i Fui PWned e PWned (atualmente V3).
A API HIBP agora requer uma chave da API que precisa ser comprada no site HIBP para qualquer pesquisa que use um endereço de email. Atualmente, isso significa que, se você estiver usando apenas este pacote para pesquisas da seção PWNEDPassword da API, uma chave da API não será necessária.
A versão 5.x retirou o suporte para versões PHP mais antigas ( < 7.4 ). Se você ainda precisar de uma versão deste pacote para ser executada em uma versão PHP mais antiga, use a tag icawebdesign/hibp-php:^4.0 , embora a filial 4.x não receba mais atualizações.
Versão 6.x agora requer Php 8.1+ . Se você precisar suportar versões anteriores do PHP, use a tag icawebdesign/hibp-php:^5.0 . Esta versão, no entanto, receberá apenas correções de segurança.
composer require icawebdesign/hibp-php: " ^6.0 " Agora que estamos direcionando um mínimo de Php 8.1 , isso nos dá a capacidade de utilizar propriedades readonamente em objetos. Com isso, a entidade Getters foi removida e as propriedades agora podem ser acessadas diretamente no objeto.
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ breachSites = $ breach -> getAllBreachSites (); Isso retornará uma Collection de objetos BreachSiteEntity .
Ou podemos filtrar para um domínio que a violação foi listada em:
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ breachSites = $ breach -> getAllBreachSites ( ' adobe.com ' ); Isso retornará uma Collection de objetos BreachSiteEntity .
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ breachSite = $ breach -> getBreach ( ' adobe ' ); Isso retornará uma única BreachSiteEntity .
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ dataClasses = $ breach -> getAllDataClasses (); Isso retornará uma array de classes de dados, por exemplo;
[
" 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] ' ); Também podemos recuperar contas não verificadas, especificando o true param (não recuperado por padrão):
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ data = $ breach -> getBreachedAccount ( ' [email protected] ' , includeUnverified: true );Também podemos filtrar os resultados de volta a um domínio violado específico, adicionando um domínio como o terceiro 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 ' ,
); Essas chamadas retornarão uma Collection de objetos BreachSiteEntity .
Os métodos PwnedPasswd agora podem receber um segundo parâmetro de uma array para especificar opções de solicitação GUZZEHTTP.
use Icawebdesign Hibp Password PwnedPassword ;
use Icawebdesign Hibp HibpHttp ;
$ pwnedPassword = new PwnedPassword ( new HibpHttp ( $ apiKey ));
$ count = $ pwnedPassword -> rangeFromHash ( ' 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 ' ); Isso retornará um int da contagem.
Você também pode verificar contra NTLM Hashes:
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 ' ); Você também pode verificar contra NTLM Hashes:
use Icawebdesign Hibp Password PwnedPassword ;
use Icawebdesign Hibp HibpHttp ;
$ pwnedPassword = new PwnedPassword ( new HibpHttp ( $ apiKey ));
$ hashData = $ pwnedPassword -> paddedNtlmRangeDataFromHash ( ' 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 ' ); Isso retornará uma Collection de objetos do modelo PwnedPassword .
use Icawebdesign Hibp Password PwnedPassword ;
use Icawebdesign Hibp HibpHttp ;
$ pwnedPassword = new PwnedPassword ( new HibpHttp ( $ apiKey ));
$ hashData = $ pwnedPassword -> rangeDataFromHash ( ' 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 ' ); Isso retornará uma Collection de objetos do 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 ' ); Isso retornará uma Collection de objetos do modelo PwnedPassword .
use Icawebdesign Hibp Paste Paste ;
use Icawebdesign Hibp HibpHttp ;
$ paste = new Paste ( new HibpHttp ( $ apiKey ));
$ data = $ paste -> lookup ( ' [email protected] ' ); Isso retornará uma Collection de objetos PasteEntity .
use Icawebdesign Hibp HibpHttp ;
use Icawebdesign Hibp Subscription Subscription ;
$ subscription = new Subscription ( new HibpHttp ( $ apiKey ));
$ status = $ subscription -> status (); Isso retornará um objeto SubscriptionStatusEntity .
Se estiver usando o pacote em um aplicativo Laravel, você pode usar as fachadas fornecidas. Primeiro, você precisa adicionar sua chave API HIBP ao seu arquivo .env ou seu método preferido para adicionar valores às variáveis do ambiente do servidor.
HIBP_API_KEY=abcdefgh123456789
Você pode usar as fachadas para chamar os 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 obter mais informações o que mudou recentemente.
Por favor, consulte a contribuição para obter detalhes.
Se você descobrir algum problema relacionado à segurança, envie um email para [email protected] em vez de usar o rastreador de problemas.
Obrigado a Artem Fomenko por ser o primeiro colaborador externo do pacote, fornecendo opções de solicitação para o Guzle para os métodos PWNEDPassword.
A licença do MIT (MIT). Consulte o arquivo de licença para obter mais informações.