فئة مساعدة بسيطة لإدارة رؤوس أمان HTTP متاحة عندما يكون موقع الويب تحت أي شهادة SSL. لسوء الحظ، يتم استخدام العديد من المكونات الإضافية لتكوين طبقة المقابس الآمنة (SSL)، ولكنها تفتقد الجزء الأكثر تفصيلاً منها - وهو تضمين الرؤوس الآمنة للطلبات. تهدف هذه الفئة إلى تقديم واجهة بسيطة لإعداد تلك الرؤوس - جلب رؤوس محددة مسبقًا مناسبة لمعظم مواقع WP، ولكنها أيضًا تمكن المبرمج من تعيين أو تغيير أي رأس - وقد يتضمن ذلك رؤوس HTTP مخصصة أيضًا.
كما نفضل، يمكن تثبيت هذه المكتبة باستخدام Composer
composer require carloswph/wp-secure-headers
.
وبدلاً من ذلك، يمكنك فقط نسخ الفصل داخل مجلد src
واستخدامه في المكون الإضافي أو القالب الخاص بك.
تقوم الفئة WPHSecurityHeaders
بإدراج رؤوس آمنة لـ Wordpress. بعد قولي هذا، فهو يأتي بالفعل مع بعض الرؤوس الأساسية، والتي يمكن رؤيتها باستخدام الطريقة الثابتة wPHSecurityHeaders::list()
. في المستقبل، نعتزم بناء بعض الأساليب المتسلسلة للسماح بتكوين رأسين محددين بالتفصيل: سياسة أمان المحتوى وسياسة الأذونات. في الوقت الحالي، يمكن إضافة كليهما إلى مثيل الفئة من خلال طريقة set()
.
use WPH Security Headers ;
require __DIR__ . ' /vendor/autoload.php ' ;
$ sec_headers = new Headers ();
$ sec_headers -> set ( ' Content-Security-Policy ' , ' connect-src "self" ' ); // Add new headers to the class array property.
منذ الإصدار 1.2.0، تحتوي هذه المكتبة على فئة إضافية، والتي يمكن تمريرها كوسيطة من خلال الفئة الرئيسية وإضافة رأس Content-Security-Policy بعد تكوينها بعشرات من الأساليب المتسلسلة. مثال:
use WPH Security Headers ;
use WPH Security ContentSecurityPolicy
require __DIR__ . ' /vendor/autoload.php ' ;
$ csp = new ContentSecurityPolicy ();
$ csp -> setChild ( ' https://google.com https://microsoft.com ' )
-> setConnect ( ' https://* ' );
$ sec_headers = new Headers ( $ csp ); // Adds the Content-Security-Policy to the headers pool, with all set parameters
إلى جانب جميع الطرق لتكوين توجيهات سياسة أمان المحتوى المختلفة بشكل فردي، تحتوي هذه الفئة الإضافية أيضًا على طريقة ReportOnly()، والتي تشير إلى الفئة الرئيسية التي يجب تعيين الرأس كتقرير سياسة أمان المحتوى فقط بدلاً من ذلك. يمكن العثور على جميع الوثائق والمعلومات حول هذا الرأس المعقد داخل تعليقات docblock الخاصة بالفصل.