عن المشروع

توفّر هذه الحزمة حلًا كاملًا بلغة PHP للتعامل مع صيغة security.txt المعرّفة في RFC 9116. وهي تمكّن المطوّرين من إنشاء ملفات security.txt برمجيًا، وتحليل الملفات الموجودة، وإجراء تحقق شامل من محتوياتها وموقعها على المضيف. تشمل القدرات الرئيسية ما يلي: - الإنشاء: بناء كائن SecurityTxt، وإضافة جهات الاتصال، والإقرارات، واللغات المفضلة، وتواريخ انتهاء الصلاحية، وحقول أخرى، ثم إخراج ملف نصي منسّق بشكل صحيح. - التحليل: تحميل security.txt من سلسلة نصية، أو نتيجة تم جلبها، أو عنوان URL بعيد، مع استخراج جميع الحقول واكتشاف الأسطر غير الصحيحة. - التحقق: التأكد من أن ملف security.txt يطابق المواصفة، عبر فحص الحقول الإلزامية، وعناوين URL الصحيحة، واستخدام HTTPS، وتغطية التوقيع، وإعادة التوجيه، وغير ذلك. ويمكن إجراء التحقق على محتوى محلي أو بجلبه من مضيف، مع تقارير مفصلة بالأخطاء والتحذيرات. - دعم التوقيعات: إنشاء توقيعات OpenPGP بنص واضح برمجيًا (يتطلب امتداد gnupg) أو استخدام ملفات ثابتة موقّعة مسبقًا. تتحقق المكتبة من التوقيعات لكنها لا تتحقق من ثقة المفتاح، وتترك ذلك للباحث. - أداة CLI: يتيح سكربت سطر الأوامر checksecuritytxt.php التحقق السريع من أي مضيف، وهو مفيد في خطوط CI أو GitHub Actions. - تسلسل JSON: يمكن ترميز نتائج التحقق أو الجلب إلى JSON لأغراض التخزين المؤقت، أو المعالجة دون خادم، أو الاتصال بين العمليات، مع التعامل مع الصيغة الخاضعة لإدارة الإصدارات. - ضوابط الجلب: جلب آمن بقيود صارمة (HTTPS فقط، والتحقق من IP، وحدود إعادة التوجيه، وحدود الحجم، ومزوّدو DNS مخصصون، وتخصيص وكيل المستخدم). - التخزين المؤقت: تمكّن أمثلة التكامل مع التخزين المؤقت في Symfony وNette من توقيع ملفات security.txt وتقديمها دون إعادة الحساب في كل طلب. صُمّمت المكتبة للتكامل من جانب الخادم والاستخدام من سطر الأوامر معًا، وتوفّر خيارات إعداد واسعة (الوضع الصارم، وحدود التحذير، والتعامل مع IPv6، وما إلى ذلك) مع الحفاظ على واجهة برمجية نظيفة قائمة على الكائنات. وهي تدعم PHP 8.5 وأعلى، مع امتدادات اختيارية لـ curl وgnupg لتمكين الجلب البعيد والتحقق من التوقيعات.