ในแนวเขตโครงการ
Snuffleupagus มีระบบกฎที่ให้คุณใช้เทมเพลตมาตรฐานเพื่อเพิ่มความปลอดภัย รวมทั้งสร้างกฎของคุณเองเพื่อควบคุมข้อมูลอินพุตและพารามิเตอร์ของฟังก์ชัน ตัวอย่างเช่น กฎ "sp.disable_function.function("system").param("command").value_r("[$|;&`\\n]").drop();" อนุญาตให้คุณจำกัดการใช้อักขระพิเศษในอาร์กิวเมนต์ของฟังก์ชัน system() โดยไม่ต้องเปลี่ยนแอปพลิเคชัน ในทำนองเดียวกันคุณสามารถสร้าง
จากการทดสอบของผู้พัฒนา Snuffleupagus แทบจะไม่ลดประสิทธิภาพลง เพื่อให้มั่นใจในความปลอดภัยของตัวเอง (ช่องโหว่ที่เป็นไปได้ในชั้นการป้องกันสามารถใช้เป็นเวกเตอร์เพิ่มเติมสำหรับการโจมตี) โครงการใช้การทดสอบอย่างละเอียดของแต่ละคอมมิตในการกระจายที่แตกต่างกัน ใช้ระบบการวิเคราะห์แบบคงที่ และรหัสถูกวาดขึ้นและจัดทำเป็นเอกสารเพื่อลดความซับซ้อนในการตรวจสอบ .
มีวิธีการในตัวเพื่อบล็อกคลาสของช่องโหว่เช่นปัญหา
จากโหมดต่างๆ เพื่อเพิ่มการป้องกัน PHP รองรับดังต่อไปนี้:
- การเปิดใช้งานแฟล็ก "ปลอดภัย" และ "samesite" (การป้องกัน CSRF) โดยอัตโนมัติสำหรับคุกกี้
การเข้ารหัส คุกกี้; - ชุดกฎในตัวเพื่อตรวจจับร่องรอยของการโจมตีและแอปพลิเคชันที่ถูกบุกรุก
- บังคับโหมดเปิดใช้งานทั่วโลก "
เข้มงวด » (ตัวอย่างเช่น บล็อกความพยายามที่จะระบุสตริงในขณะที่คาดหวังค่าจำนวนเต็มเป็นอาร์กิวเมนต์) และป้องกันการจัดการประเภท ; - การปิดกั้นโดยค่าเริ่มต้น
กระดาษห่อสำหรับโปรโตคอล (เช่น ข้อห้ามของ "phar://") โดยได้รับอนุญาตอย่างชัดแจ้งตามรายการที่อนุญาต - ข้อห้ามในการใช้งานไฟล์ที่สามารถเขียนได้
- รายการขาวดำสำหรับ eval;
- เปิดใช้งานการตรวจสอบใบรับรอง TLS ที่จำเป็นเมื่อใช้
ขด; - การเพิ่ม HMAC ให้กับออบเจกต์ซีเรียลไลซ์เพื่อให้แน่ใจว่าการดีซีเรียลไลเซชันดึงข้อมูลที่จัดเก็บโดยแอปพลิเคชันดั้งเดิม
- ขอโหมดบันทึก;
- การบล็อกการโหลดไฟล์ภายนอกใน libxml จากลิงก์ในเอกสาร XML
- ความสามารถในการเชื่อมต่อตัวจัดการภายนอก (upload_validation) เพื่อตรวจสอบและสแกนไฟล์ที่อัปโหลด
โครงการนี้ถูกสร้างขึ้นและใช้เพื่อปกป้องผู้ใช้ในโครงสร้างพื้นฐานของหนึ่งในผู้ให้บริการโฮสติ้งรายใหญ่ของฝรั่งเศส
"sp.readonly_exec.enable()"
ที่มา: opennet.ru