HIBP-PHP adalah perpustakaan komposer untuk mengakses API Kata Sandi Have I telah PWNED dan PWNED (saat ini V3).
HIBP API sekarang membutuhkan kunci API yang perlu dibeli di situs HIBP untuk pencarian apa pun yang menggunakan alamat email. Ini saat ini berarti bahwa jika Anda hanya menggunakan paket ini untuk pencarian dari bagian PwnedPassword API, maka kunci API tidak diperlukan.
Versi 5.x telah menjatuhkan dukungan untuk versi PHP yang lebih lama ( < 7.4 ). Jika Anda masih memerlukan versi paket ini untuk dijalankan pada versi PHP yang lebih lama, maka silakan gunakan tag icawebdesign/hibp-php:^4.0 , meskipun cabang 4.x tidak akan lagi menerima pembaruan.
Versi 6.x sekarang membutuhkan PHP 8.1+ . Jika Anda perlu mendukung versi PHP sebelumnya, silakan gunakan tag icawebdesign/hibp-php:^5.0 . Namun versi ini, hanya akan menerima perbaikan keamanan.
composer require icawebdesign/hibp-php: " ^6.0 " Sekarang kami menargetkan minimal PHP 8.1 , ini memberi kami kemampuan untuk memanfaatkan properti readlyly di objek. Dengan ini, getter entitas telah dihapus dan properti sekarang dapat diakses langsung pada objek.
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ breachSites = $ breach -> getAllBreachSites (); Ini akan mengembalikan Collection benda -benda BreachSiteEntity .
Atau kita dapat memfilter untuk domain, pelanggaran tercantum dalam:
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ breachSites = $ breach -> getAllBreachSites ( ' adobe.com ' ); Ini akan mengembalikan Collection benda -benda BreachSiteEntity .
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ breachSite = $ breach -> getBreach ( ' adobe ' ); Ini akan mengembalikan satu BreachSiteEntity .
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ dataClasses = $ breach -> getAllDataClasses (); Ini akan mengembalikan array kelas data, misalnya;
[
" 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] ' ); Kami dapat mengambil akun yang tidak diverifikasi juga dengan menentukan true untuk param kedua (tidak diambil secara default):
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ data = $ breach -> getBreachedAccount ( ' [email protected] ' , includeUnverified: true );Kami juga dapat memfilter hasil kembali ke domain yang dilanggar tertentu dengan menambahkan domain sebagai param ke -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 ' ,
); Panggilan ini akan mengembalikan Collection benda -benda BreachSiteEntity .
Metode PwnedPasswd sekarang dapat mengambil param kedua dari array untuk menentukan opsi permintaan GuzzleHTTP.
use Icawebdesign Hibp Password PwnedPassword ;
use Icawebdesign Hibp HibpHttp ;
$ pwnedPassword = new PwnedPassword ( new HibpHttp ( $ apiKey ));
$ count = $ pwnedPassword -> rangeFromHash ( ' 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 ' ); Ini akan mengembalikan int dari hitungan.
Anda juga dapat memeriksa hash 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 ' ); Anda juga dapat memeriksa hash NTLM :
use Icawebdesign Hibp Password PwnedPassword ;
use Icawebdesign Hibp HibpHttp ;
$ pwnedPassword = new PwnedPassword ( new HibpHttp ( $ apiKey ));
$ hashData = $ pwnedPassword -> paddedNtlmRangeDataFromHash ( ' 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 ' ); Ini akan mengembalikan Collection objek model PwnedPassword .
use Icawebdesign Hibp Password PwnedPassword ;
use Icawebdesign Hibp HibpHttp ;
$ pwnedPassword = new PwnedPassword ( new HibpHttp ( $ apiKey ));
$ hashData = $ pwnedPassword -> rangeDataFromHash ( ' 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 ' ); Ini akan mengembalikan Collection objek model 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 ' ); Ini akan mengembalikan Collection objek model PwnedPassword .
use Icawebdesign Hibp Paste Paste ;
use Icawebdesign Hibp HibpHttp ;
$ paste = new Paste ( new HibpHttp ( $ apiKey ));
$ data = $ paste -> lookup ( ' [email protected] ' ); Ini akan mengembalikan Collection benda PasteEntity .
use Icawebdesign Hibp HibpHttp ;
use Icawebdesign Hibp Subscription Subscription ;
$ subscription = new Subscription ( new HibpHttp ( $ apiKey ));
$ status = $ subscription -> status (); Ini akan mengembalikan objek SubscriptionStatusEntity .
Jika menggunakan paket dalam aplikasi Laravel, Anda dapat menggunakan fasad yang disediakan. Pertama, Anda perlu menambahkan tombol API HIBP Anda ke file .env Anda, atau metode pilihan Anda untuk menambahkan nilai ke variabel lingkungan server Anda.
HIBP_API_KEY=abcdefgh123456789
Anda kemudian dapat menggunakan fasad untuk memanggil metode yang relevan:
// 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 ' );Silakan lihat Changelog untuk informasi lebih lanjut apa yang telah berubah baru -baru ini.
Silakan lihat berkontribusi untuk detailnya.
Jika Anda menemukan masalah terkait keamanan, silakan kirim email ke [email protected] alih -alih menggunakan pelacak masalah.
Terima kasih kepada Artem Fomenko karena telah menjadi kontributor eksternal pertama untuk paket yang memberikan opsi permintaan untuk Guzzle untuk metode PwnedPassword.
Lisensi MIT (MIT). Silakan lihat file lisensi untuk informasi lebih lanjut.