wp_insert_posts () ปลอดภัย / ถูกสุขลักษณะอย่างไร


13

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

เพียงแค่สงสัยว่าฉันจะต้องทำการฆ่าเชื้อใด ๆ เพิ่มเติมเพื่อป้องกันการแฮ็ก XSS และสิ่งที่ชอบหรือไม่เพียงพอที่จะทำผ่านฟังก์ชั่น

ความจริงแล้วฉันได้ตรวจสอบผ่านฟังก์ชั่นในแกนกลางและไม่พบ wp_kses () หรือการฆ่าเชื้ออื่น ๆ ใน post_content เช่นฉันจึงกังวลเล็กน้อย ทั้งหมดที่ฉันเห็นว่ามันคือ striplashes_deep () บนข้อมูล

ดังนั้นฉันควรใช้ wp_kses () หรือสิ่งอื่นใดเมื่อฉันสร้างอาร์กิวเมนต์เพื่อ wp_insert_post ()

การปฏิบัติที่ดีที่สุดที่นี่คืออะไร Codex เป็นทหารม้าที่น่ารักเกี่ยวกับความปลอดภัยในตัวอย่าง

ขอบคุณ


2
มันป้องกันการฉีด SQL เท่านั้น หากคุณต้องการรัน kses บนเนื้อหาคุณจะต้องทำด้วยตัวเอง WP ไม่สามารถคาดเดาได้ว่าจะตัดแถบ HTML ใดออก จะเกิดอะไรขึ้นถ้าผู้ดูแลระบบส่งโพสต์และเขาต้องการแทรก<script>ข้างใน?
onetrickpony

โอเครู้ดี wp_kses_post () กับทุกอย่างแล้วและ wp_kses_title () ที่ชื่อ!
Tom Auger

อัปเดต Codex เพื่อแสดงตัวอย่างของการตรวจสอบความถูกต้องของข้อมูลและ wp_insert_posts ()
Tom Auger

คำตอบ:


11

คุณไม่ต้องทำอะไรเลย

ในการโหลด WP:

'init' hook -> kses_init() -> kses_init_filters()

ต่อมา:

wp_insert_post() -> sanitize_post() -> sanitize_post_field() -> 'content_save_pre' -> wp_filter_post_kses()

ในทำนองเดียวกันสำหรับชื่อโพสต์ข้อความแสดงความคิดเห็น ฯลฯ

สรุป: wp_insert_post () ถูกสุขอนามัยมาก :)


ขอบคุณ Scribu สำหรับการแก้ไข - แน่นอนเป็นวิธีที่ดีกว่าที่จะไป! แม้ว่าฉันหวังว่าคุณจะไม่ได้ทิ้งข้อมูลโค้ดทั้งหมดนั้นเพราะมันก็เป็นตัวอย่างที่ดีในแง่มุมอื่น ๆ ของการใช้ wp_insert_post () ที่ตัวอย่างหลักไม่ครอบคลุม
Tom Auger

ใช่รู้สึกไม่ดีเช่นกัน อย่างไรก็ตามมันเกินขอบเขตของ wp_insert_post () ฉันคิดว่าการสอนแยกจากบนลงล่างจะดีกว่า
scribu

อัปเดตคำตอบและ codex เช่นกัน
scribu

lol @ แก้ไขล่าสุด บางครั้งต้องใช้การขุดเพื่อหาทองคำทั้งหมดที่ฝังอยู่ในแกนแล้ว :) ฉันทำด้ายหายเมื่อฉันติดตามมัน ดูเหมือนว่าคุณเป็นนักสืบที่ดีกว่าฉัน! ขอบคุณที่ผสานกับสิ่งนี้และอัปเดต codex
Tom Auger
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.