2
ในบริบทใดที่ปลั๊กอินรับผิดชอบการตรวจสอบข้อมูล / การฆ่าเชื้อ?
ฉันต้องการตรวจสอบให้แน่ใจว่าข้อมูลทั้งหมดในปลั๊กอิน / ชุดรูปแบบของฉันได้รับการจัดการอย่างปลอดภัยก่อนที่จะเข้าสู่ฐานข้อมูลและก่อนที่จะส่งออกไปยังเบราว์เซอร์ ปัญหาของฉันคือมีสถานการณ์ที่ API จัดการการฆ่าเชื้อสำหรับคุณ - เช่นเมื่อบันทึกเขตข้อมูลการโพสต์ - และอื่น ๆ ที่ผู้เขียนปลั๊กอิน / ชุดรูปแบบมีความรับผิดชอบทั้งหมดในการทำเช่น - เมื่อบันทึกการตั้งค่าที่กำหนดเอง สำหรับขอบเขตของคำถามนี้ฉันไม่กังวลเกี่ยวกับการตรวจสอบข้อมูลในระดับโดเมน - เช่นการตรวจสอบว่าฟิลด์ Age บนฟอร์มอยู่ระหว่าง 0 ถึง 120 หรือที่อยู่อีเมลนั้นถูกต้อง ฉันกังวลเกี่ยวกับความปลอดภัยเท่านั้น - เช่นการหลีกเลี่ยงการสืบค้น SQL เพื่อหลีกเลี่ยงการฉีด SQL เมื่อบันทึกลงในฐานข้อมูลหรือฆ่าข้อมูลที่ส่งออกไปยังเทมเพลต HTML เพื่อหลีกเลี่ยง XSS สำหรับการฆ่าเชื้อด้วยเอาท์พุตฉันรู้ว่าคุณจำเป็นต้องใช้ฟังก์ชั่นเช่นesc_html()และesc_attr()เมื่อสะท้อนตัวแปรในเทมเพลต HTML แต่แล้วเมื่อใช้แท็กเทมเพลตล่ะ พวกเขาทั้งหมดสะอาดผลลัพธ์แล้วหรือไม่ ถ้าเป็นเช่นนั้นสำหรับบริบทใด (HTML ทั่วไปแอตทริบิวต์ของแท็ก ฯลฯ ) บางฟังก์ชั่นมีตัวแปรสำหรับบริบทที่แตกต่างกัน (เช่นthe_title_attribute()แต่ส่วนใหญ่ไม่มี สำหรับการฆ่าเชื้ออินพุตฉันรู้ว่าฉันต้องใช้$wpdb->prepare()เมื่อสร้างเคียวรีแบบแมนนวล แต่ถ้าใช้ API การตั้งค่าเพื่อสร้างหน้าการตั้งค่าปลั๊กอินหรือบันทึกเขตข้อมูลเมตาโพสต์สำหรับประเภทโพสต์ที่กำหนดเอง …