HIBP-PHP هي مكتبة ملحن للوصول إلى واجهات برمجة واجهات PWNED و PWNED PWARDS (حاليًا V3).
يتطلب API HIBP الآن مفتاح API الذي يجب شراؤه من موقع HIBP لأي بحث يستخدم عنوان بريد إلكتروني. هذا يعني حاليًا أنه إذا كنت تستخدم هذه الحزمة فقط للبحث عن قسم PWNEDPASSWORD في API ، فلن يكون مفتاح 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 ، يمنحنا هذا القدرة على الاستفادة من الخصائص القراءة في الكائنات. مع هذا ، تمت إزالة Getters الكيان ويمكن الآن الوصول إلى الخصائص مباشرة على الكائن.
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ breachSites = $ breach -> getAllBreachSites (); سيؤدي ذلك إلى إرجاع Collection من كائنات BreachSiteEntity .
أو يمكننا تصفية المجال الذي تم إدراج الخرق في:
use Icawebdesign Hibp Breach Breach ;
use Icawebdesign Hibp HibpHttp ;
$ breach = new Breach ( new HibpHttp ( $ apiKey ));
$ breachSites = $ breach -> getAllBreachSites ( ' adobe.com ' ); سيؤدي ذلك إلى إرجاع Collection من كائنات BreachSiteEntity .
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 ' ,
); هذه المكالمات ستعيد Collection من كائنات BreachSiteEntity .
يمكن أن تأخذ أساليب PwnedPasswd الآن معلمة ثانية من array لتحديد خيارات طلب GuzzleHTTP.
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 ' ); سيؤدي ذلك إلى إرجاع Collection من كائنات طراز PwnedPassword .
use Icawebdesign Hibp Password PwnedPassword ;
use Icawebdesign Hibp HibpHttp ;
$ pwnedPassword = new PwnedPassword ( new HibpHttp ( $ apiKey ));
$ hashData = $ pwnedPassword -> rangeDataFromHash ( ' 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 ' ); سيؤدي ذلك إلى إرجاع Collection من كائنات طراز 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 ' ); سيؤدي ذلك إلى إرجاع Collection من كائنات طراز PwnedPassword .
use Icawebdesign Hibp Paste Paste ;
use Icawebdesign Hibp HibpHttp ;
$ paste = new Paste ( new HibpHttp ( $ apiKey ));
$ data = $ paste -> lookup ( ' [email protected] ' ); سيؤدي هذا إلى إرجاع Collection من كائنات PasteEntity .
use Icawebdesign Hibp HibpHttp ;
use Icawebdesign Hibp Subscription Subscription ;
$ subscription = new Subscription ( new HibpHttp ( $ apiKey ));
$ status = $ subscription -> status (); هذا سيعيد كائن SubscriptionStatusEntity .
إذا كنت تستخدم الحزمة داخل تطبيق Laravel ، يمكنك استخدام الواجهات المقدمة. أولاً ، تحتاج إلى إضافة مفتاح API HIBP إلى ملف .env الخاص بك ، أو الطريقة المفضلة لديك لإضافة القيم إلى متغيرات بيئة الخادم.
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] بدلاً من استخدام تعقب المشكلات.
شكرًا لك على Artem Fomenko لكونك أول مساهم خارجي في الحزمة التي توفر خيارات الطلب لـ Guzzle لطرق PwnedPassword.
ترخيص معهد ماساتشوستس للتكنولوجيا (MIT). يرجى الاطلاع على ملف الترخيص لمزيد من المعلومات.