คลาสตัวช่วยง่ายๆ ในการจัดการ HTTP Security Headers จะพร้อมใช้งานเมื่อเว็บไซต์อยู่ภายใต้ใบรับรอง SSL ใดๆ น่าเสียดายที่มีการใช้ปลั๊กอินจำนวนมากเพื่อกำหนดค่า SSL แต่พลาดส่วนที่ละเอียดกว่านี้ - รวมส่วนหัวที่ปลอดภัยไว้กับคำขอ คลาสนี้มีจุดมุ่งหมายเพื่อนำเสนออินเทอร์เฟซที่เรียบง่ายในการตั้งค่าเหล่านั้น โดยนำส่วนหัวที่กำหนดไว้ล่วงหน้าให้เพียงพอสำหรับเว็บไซต์ WP ส่วนใหญ่ แต่ยังช่วยให้ผู้เขียนโค้ดสามารถตั้งค่าหรือแก้ไขส่วนหัวใดๆ ก็ได้ และนั่นอาจรวมถึงส่วนหัว HTTP ที่กำหนดเองด้วย
ตามที่เราต้องการ ไลบรารีนี้สามารถติดตั้งได้โดยใช้ Composer
composer require carloswph/wp-secure-headers
หรือคุณสามารถคัดลอกคลาสภายในโฟลเดอร์ src
และใช้ในปลั๊กอินหรือธีมของคุณ
คลาส WPHSecurityHeaders
แทรกส่วนหัวที่ปลอดภัยสำหรับ Wordpress อย่างที่กล่าวไปแล้ว มันมาพร้อมกับส่วนหัวพื้นฐานบางส่วนแล้ว ซึ่งสามารถเห็นได้โดยใช้วิธีคงที่ wPHSecurityHeaders::list()
ในอนาคต เราตั้งใจที่จะสร้างวิธีการแบบลูกโซ่เพื่อให้สามารถกำหนดค่ารายละเอียดสองส่วนหัวเฉพาะได้: Content-Security-Policy และ Permissions-Policy ในขณะนี้ ทั้งสองสามารถเพิ่มลงในอินสแตนซ์ของคลาสได้โดยใช้เมธอด 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
นอกจากวิธีการทั้งหมดในการกำหนดค่าคำสั่ง Content-Security-Policy ต่างๆ ทีละรายการแล้ว คลาสเพิ่มเติมนี้ยังมีเมธอด ReportOnly() ซึ่งระบุคลาสหลักที่ส่วนหัวจะต้องตั้งค่าเป็น Content-Security-Policy-Report-Only แทน เอกสารและข้อมูลทั้งหมดเกี่ยวกับส่วนหัวที่ซับซ้อนนี้สามารถพบได้ในความคิดเห็น docblock ของชั้นเรียน