คำถามติดแท็ก sanitization

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

4
sanitize_title เพียงพอที่จะสร้างตัวดักเสาหรือไม่
ฉันต้องการสร้างกระสุนสำหรับสายบางอย่างโดยไม่ต้องผ่านการไหลของการสร้างกระสุน WordPress ดังนั้นฉันต้องการทราบว่าฟังก์ชั่นใดที่เรียกใช้เพื่อให้ได้กระสุนที่เรียบร้อย ฉันลอง sanitize_title () แต่ได้ผล% c2% a0
16 seo  slug  sanitization 

2
Data sanitization: แนวทางปฏิบัติที่ดีที่สุดพร้อมตัวอย่างโค้ด
ฉันกำลังพยายามทำความเข้าใจกับการล้างข้อมูล (ไม่ใช่การตรวจสอบข้อมูล) เพื่อช่วยฉันในการเขียนธีมที่ปลอดภัยสำหรับ WordPress ฉันค้นหาทางอินเทอร์เน็ตเพื่อค้นหาคำแนะนำที่เข้าใจง่ายสำหรับนักพัฒนาชุดรูปแบบที่มีรายละเอียดวิธีปฏิบัติที่ดีที่สุด มีทรัพยากรอยู่สองสามอย่างที่ฉันเจอรวมถึงเพจ codex ที่ชื่อว่า Data Validation แม้ว่าจะไม่มีประโยชน์อะไรสำหรับฉัน หน้า codex แสดงรายการฟังก์ชั่นการฆ่าเชื้อที่มีอยู่การใช้งานและสิ่งที่พวกเขาทำ แต่ล้มเหลวในการอธิบายว่าทำไมคุณจึงใช้ฟังก์ชันหนึ่งเหนือสิ่งอื่นหรือในสถานการณ์ที่คุณจะใช้ฟังก์ชั่นการฆ่าเชื้อ จุดประสงค์ของโพสต์นี้คือเพื่อขอให้ทุกคนมีส่วนร่วมในตัวอย่างของรหัสที่ไม่ดี / ไม่ถูกแก้ไขและวิธีการเขียนใหม่เพื่อการสุขาภิบาลที่ถูกต้อง นี่อาจเป็นรหัสทั่วไปในการทำให้สะอาดชื่อโพสต์หรือโพสต์ thumnails src หรือรหัสที่ซับซ้อนมากขึ้นที่จัดการการฆ่าเชื้อของ$_POST ข้อมูลสำหรับคำขอ Ajax นอกจากนี้ฉันต้องการทราบว่าฟังก์ชั่น WordPress สำหรับการเพิ่ม / อัปเดตฐานข้อมูล (เช่นที่กล่าวถึงในบล็อกรหัสด้านล่าง) จะดูแลการฆ่าเชื้อให้คุณโดยอัตโนมัติหรือไม่? ถ้าใช่มีข้อยกเว้นใด ๆ เมื่อคุณจะใช้มาตรการเพิ่มเติมเพื่อฆ่าเชื้อข้อมูลที่ส่งไปยังฟังก์ชัน WordPress เหล่านี้หรือไม่ add_user_meta update_user_meta add_post_meta update_post_meta //just to name a few นอกจากนี้การฆ่าเชื้อจะต้องทำแตกต่างกันเมื่อสะท้อน HTML ใน PHP เมื่อเทียบกับ …

3
ฉันควรทำให้ที่อยู่อีเมลปลอดภัยก่อนที่จะส่งผ่านไปยังฟังก์ชัน is_email () หรือไม่
ฉันใช้is_email()เพื่อตรวจสอบว่าที่อยู่อีเมลที่ผู้ใช้ระบุถูกต้องหรือไม่ ตัวอย่างเช่น: $email = $_POST['email']; if ( is_email( $email ) ) // Do something. เพื่อความรู้ที่ดีที่สุดของฉันไม่มีสิ่งใดในฟังก์ชั่นนี้เขียนข้อมูลไปยังฐานข้อมูล ฉันควรจะฆ่าเชื้อ$emailก่อนที่จะส่งไปยังฟังก์ชั่นหรือไม่

1
wp_insert_posts () ปลอดภัย / ถูกสุขลักษณะอย่างไร
การดู Codex สำหรับwp_insert_post ()ระบุว่าฟังก์ชันนี้ "... ฆ่าเชื้อตัวแปรทำการตรวจสอบบางอย่างเติมข้อมูลในตัวแปรที่ขาดหายไปเช่นวันที่ / เวลา ฯลฯ " (แก้ไข: ฉันอัปเดตรายการ Codexเพื่อรวมตัวอย่างที่แข็งแกร่งมากขึ้น ที่มีความปลอดภัยเช่นเดียวกับการโพสต์เมตาและการกำหนดหมวดหมู่) เพียงแค่สงสัยว่าฉันจะต้องทำการฆ่าเชื้อใด ๆ เพิ่มเติมเพื่อป้องกันการแฮ็ก XSS และสิ่งที่ชอบหรือไม่เพียงพอที่จะทำผ่านฟังก์ชั่น ความจริงแล้วฉันได้ตรวจสอบผ่านฟังก์ชั่นในแกนกลางและไม่พบ wp_kses () หรือการฆ่าเชื้ออื่น ๆ ใน post_content เช่นฉันจึงกังวลเล็กน้อย ทั้งหมดที่ฉันเห็นว่ามันคือ striplashes_deep () บนข้อมูล ดังนั้นฉันควรใช้ wp_kses () หรือสิ่งอื่นใดเมื่อฉันสร้างอาร์กิวเมนต์เพื่อ wp_insert_post () การปฏิบัติที่ดีที่สุดที่นี่คืออะไร Codex เป็นทหารม้าที่น่ารักเกี่ยวกับความปลอดภัยในตัวอย่าง ขอบคุณ

2
เอาต์พุต HTML ควรส่งผ่าน esc_html () และ wp_kses () หรือไม่
ฉันสับสนเกี่ยวกับการใช้ที่แตกต่างกันและesc_html() wp_kses()ฉันเข้าใจว่าesc_html()แปลงอักขระพิเศษเป็นเอนทิตี HTML ของพวกเขาและwp_kses()ลบแท็กที่ไม่พึงประสงค์ (เช่น<script>) แต่ฉันไม่แน่ใจในบริบทที่ควรใช้ร่วมกันหรือแยกกัน หากฉันใช้ HTML ที่ไม่น่าเชื่อถือผ่านesc_html()JavaScript จะแสดงเป็นข้อความธรรมดาแทนที่จะแสดงผลโดยเบราว์เซอร์ดังนั้นจึงปลอดภัยที่จุดนั้นถูกต้องหรือไม่ เหตุผลเดียวที่จะใช้งานได้wp_kses()ก็คือเพื่อหลีกเลี่ยงการแสดงสคริปต์ดิบ? โดยทั่วไปesc_html()ทำให้ปลอดภัยและwp_kses()ทำให้สวย ถูกต้องหรือไม่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.