HIBP-PHPは、私がpwned pwnedおよびpwned Passwords API(現在V3)にアクセスするための作曲家ライブラリです。
HIBP APIには、メールアドレスを使用する見た目のためにHIBPサイトで購入する必要があるAPIキーが必要です。これは現在、このパッケージをAPIのpwnedPasswordセクションのルックアップにのみ使用している場合、APIキーが不要であることを意味します。
バージョン5.x 、古いPHPバージョンのサポートをドロップしました( < 7.4 )。古いPHPバージョンで実行するためにこのパッケージのバージョンがまだ必要な場合は、 4.xブランチは更新を受け取っていませんがicawebdesign/hibp-php:^4.0タグを使用してください。
バージョン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オブジェクトのCollectionが返されます。
または、ドメインをフィルタリングすることもできます。違反は以下に記載されていました。
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ breachSites = $ breach -> getAllBreachSites ( ' adobe.com ' );これにより、 BreachSiteEntityオブジェクトの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] ' ); 2番目のPARAM(デフォルトで取得されていない)にtrueを指定することにより、未検証のアカウントも取得できます。
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ data = $ breach -> getBreachedAccount ( ' [email protected] ' , includeUnverified: true );また、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 ' ,
);これらの呼び出しは、 BreachSiteEntityオブジェクトのCollectionを返します。
PwnedPasswdメソッドは、GuzzleHTTPリクエストオプションを指定するためにarrayの2番目のパラマリを使用できるようになりました。
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)。詳細については、ライセンスファイルをご覧ください。