HIBP-PHP는 내가 PWEND 및 PWEND PASSBERTS API (현재 v3)에 액세스하기위한 작곡가 라이브러리입니다.
HIBP API에는 이제 이메일 주소를 사용하는 조회를 위해 HIBP 사이트에서 구매 해야하는 API 키가 필요합니다. 이는 현재 API의 PwnedPassword 섹션에서 조회를 위해이 패키지 만 사용하는 경우 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 속성을 활용할 수 있습니다. 이를 통해 엔터티 게터가 제거되었으며 이제 객체에서 직접 액세스 할 수 있습니다.
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ breachSites = $ breach -> getAllBreachSites (); 이것은 BreachSiteEntity Objects Collection 반환합니다.
또는 도메인을 필터링 할 수 있습니다. 위반은 다음에 나열되었습니다.
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ breachSites = $ breach -> getAllBreachSites ( ' adobe.com ' ); 이것은 BreachSiteEntity Objects Collection 반환합니다.
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 );도메인을 세 번째 매개로로 추가하여 특정 위반 도메인으로 다시 결과를 필터링 할 수도 있습니다.
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 ' ,
); 이 전화는 BreachSiteEntity 객체 Collection 반환합니다.
PwnedPasswd 메소드는 이제 GuzzleHTTP 요청 옵션을 지정하기 위해 array 의 두 번째 매개 변수를 가져갈 수 있습니다.
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 ' ); 이것은 PwnedPassword 모델 객체 Collection 반환합니다.
use Icawebdesign Hibp Password PwnedPassword ;
use Icawebdesign Hibp HibpHttp ;
$ pwnedPassword = new PwnedPassword ( new HibpHttp ( $ apiKey ));
$ hashData = $ pwnedPassword -> rangeDataFromHash ( ' 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 ' ); 이것은 PwnedPassword 모델 객체 Collection 반환합니다.
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 ' ); 이것은 PwnedPassword 모델 객체 Collection 반환합니다.
use Icawebdesign Hibp Paste Paste ;
use Icawebdesign Hibp HibpHttp ;
$ paste = new Paste ( new HibpHttp ( $ apiKey ));
$ data = $ paste -> lookup ( ' [email protected] ' ); 이것은 PasteEntity 객체 Collection 반환합니다.
use Icawebdesign Hibp HibpHttp ;
use Icawebdesign Hibp Subscription Subscription ;
$ subscription = new Subscription ( new HibpHttp ( $ apiKey ));
$ status = $ subscription -> status (); 이것은 SubscriptionStatusEntity 대상을 반환합니다.
Laravel 애플리케이션 내에서 패키지를 사용하는 경우 제공된 외관을 사용할 수 있습니다. 먼저 .env 파일에 HIBP API 키를 추가하거나 서버 환경 변수에 값을 추가하기위한 선호하는 메소드를 추가해야합니다.
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]으로 이메일을 보내주십시오.
PwnedPassword 방법에 대한 Guzzle 요청 옵션을 제공하는 패키지의 최초의 외부 기고자가 된 Artem Fomenko에게 감사합니다.
MIT 라이센스 (MIT). 자세한 내용은 라이센스 파일을 참조하십시오.