สิ่งที่ต้องคำนึงถึงในขณะที่สร้างปลั๊กอิน WordPress ตั้งแต่เริ่มต้น
เผยแพร่แล้ว: 2022-01-02ปลั๊กอิน WordPress เป็นไฟล์เดียวหรือกลุ่มของไฟล์ที่ขยายหรือปรับปรุงฟังก์ชันการทำงานของไซต์ WordPress
นักพัฒนาใหม่ทุกคนรู้จัก “วิธีการเขียนโค้ด” แต่เมื่อสร้างปลั๊กอินใน WordPress นักพัฒนาต้องจำข้อกำหนดพื้นฐานบางประการในการสร้างปลั๊กอิน WordPress นอกเหนือจากคุณภาพโค้ด ความปลอดภัย และฟังก์ชันการทำงาน
คู่มือนี้อธิบายขั้นตอนสำคัญที่ต้องคำนึงถึงเมื่อสร้างปลั๊กอิน WordPress ตั้งแต่เริ่มต้น
ในปลั๊กอิน WordPress สิ่งสำคัญที่ต้องทำความเข้าใจคือ WordPress Hooks เช่น การดำเนินการและตัวกรอง Hooks อนุญาตให้ปลั๊กอินทำงานด้วยฟังก์ชันที่กำหนดไว้ในเวลาที่กำหนดภายในฟังก์ชัน WordPress
รายการขอดำเนินการ : https://codex.wordpress.org/Plugin_API/Action_Reference
กำหนด ('WP_DEBUG', จริง); --- เพิ่มตัวเลือก WP_DEBUG ใน WordPress เวอร์ชัน 2.3.1 แล้ว --- โดยค่าเริ่มต้น จะถือว่ามันเป็นเท็จ อย่างไรก็ตาม โดยปกติจะถูกตั้งค่าเป็น true ในไฟล์ wp-config.php
-> เพิ่มส่วนหัวข้อมูลเฉพาะของปลั๊กอินไปยังไฟล์ที่สร้างขึ้นใหม่ของเราในโฟลเดอร์ปลั๊กอิน
/* ชื่อปลั๊กอิน: ข้อความรับรองประเภท URI ของปลั๊กอิน: https://wordpress.org/plugins/testimonial-post-type/ คำอธิบาย: สร้างประเภทข้อความรับรอง มันเป็นอนุกรมวิธานและแท็ก เวอร์ชัน: 1.0 ผู้เขียน: Elsner Technologies Pvt. บจก. URI ผู้แต่ง: https://www.elsner.com โดเมนข้อความ: ข้อความรับรองโพสต์ประเภท เส้นทางโดเมน: /languages */
ที่เกี่ยวข้อง : ปลั๊กอิน WordPress ที่เพิ่งเปิดตัวล่าสุดของ Elsner: Posts Slider Shortcode
-> ปลั๊กอินทั้งหมดต้องมีชื่อฟังก์ชัน การกำหนด และชื่อคลาสที่ไม่ซ้ำกัน
ซึ่งจะป้องกันไม่ให้ปลั๊กอินของคุณขัดแย้งกับปลั๊กอินหรือธีมอื่นๆ
-> อย่าใช้ __ (ขีดล่างคู่) wp_ หรือ _ (ขีดล่างเดียว) เป็นคำนำหน้า
สิ่งเหล่านี้สงวนไว้สำหรับ WordPress เอง คุณสามารถใช้มันในชั้นเรียนของคุณ แต่ไม่ใช่เป็นฟังก์ชันแบบสแตนด์อโลน
-> โปรดรักษาความปลอดภัยปลั๊กอินของคุณจากการเข้าถึงไฟล์โดยตรง
ถ้า ( ! กำหนด ( 'ABSPATH' ) ) ออก; // ออกหากเข้าถึงได้โดยตรง
— คุณสามารถหลีกเลี่ยงการเข้าถึงไฟล์โดยตรงโดยวางโค้ดนี้ไว้ที่ด้านบนสุดของไฟล์ php ทั้งหมด:
-> โปรดเพิ่ม nonce ในการเรียก POST ของคุณเพื่อป้องกันการเข้าถึงโดยไม่ได้รับอนุญาต
nonce (จำนวนที่ใช้ครั้งเดียว)
WordPress nonce ไม่ใช่ตัวเลข แต่เป็นแฮชที่ประกอบด้วยตัวเลขและตัวอักษร ไม่ได้ใช้เพียงครั้งเดียว แต่มี "อายุการใช้งาน" ที่ จำกัด หลังจากที่หมดอายุ
โดยปกติเราจะสร้าง url แบบนี้เพื่อลบ post_id 174
http://example.com/wp-admin/post.php?post=123&action=trash
URL นี้สมบูรณ์แบบ แต่ไม่ปลอดภัย สมมติว่าผู้โจมตีรู้รหัสของโพสต์ จากนั้นผู้โจมตีสามารถลบโพสต์ด้วย URL นี้โดยที่คุณไม่รู้ตัว
การเพิ่ม nonce จะป้องกันสิ่งนี้ ตัวอย่างเช่น เมื่อใช้ nonce URL ที่ WordPress สร้างสำหรับผู้ใช้จะมีลักษณะดังนี้:
http://example.com/wp-admin/post.php?post=123&action=trash&_wpnonce=b192fc4204
$nonce = wp_create_nonce( 'my-action_trash' );— นี่เพียงส่งกลับค่า nonce เอง
— ค่านี้คุณสามารถใส่ใน URL like
action='http://example.com/wp-admin/post.php?post=123&action=trash&_wpnonce='.$nonce;
— ตรวจสอบ nonce ที่ส่งผ่านใน URL
wp_verify_nonce( $_REQUEST['_wpnonce'], 'my-action_trash' );ที่เกี่ยวข้อง: วิธีการส่งปลั๊กอินของคุณไปยังไดเรกทอรีปลั๊กอิน WordPress?

-> โปรดฆ่าเชื้อ หลบหนี และตรวจสอบการโทร POST ของคุณ
ฆ่าเชื้อ : ทำความสะอาดอินพุตของผู้ใช้
เราต้องไม่ใส่ข้อมูลดิบลงในฐานข้อมูล แม้แต่โดยฟังก์ชันการอัพเดทหรือการเรียก prepare()
การล้างข้อมูล POST ของคุณเมื่อใช้เพื่อเรียกการดำเนินการ หรือการเปลี่ยนเส้นทาง URL จะช่วยลดโอกาสที่อาจเกิดช่องโหว่ XSS
Sanitize_text_field($_POST['post_name']);
— ข้อมูลสามารถฆ่าเชื้อได้โดยใช้ฟังก์ชันข้างต้น
— เบื้องหลัง ฟังก์ชันนี้ทำหน้าที่ดังต่อไปนี้:
ตรวจสอบ UTF-8 . ที่ไม่ถูกต้อง
แปลงอักขระ < ตัวเดียวเป็นเอนทิตี
แถบแท็กทั้งหมด
ลบการขึ้นบรรทัดใหม่ แท็บ และพื้นที่สีขาวเพิ่มเติม
สตริปออคเต็ต
— Sanitize_*() คลาสของฟังก์ชั่นตัวช่วย
https://developer.wordpress.org/plugins/security/securing-input/
ตรวจสอบ : กำลังตรวจสอบการป้อนข้อมูลของผู้ใช้
นอกจากการฆ่าเชื้อแล้ว คุณควรตรวจสอบการโทรทั้งหมดของคุณ หากการโทร $_POST ควรเป็นตัวเลขเท่านั้น ให้ตรวจสอบว่าเป็น int() ก่อนที่คุณจะส่งต่อผ่านสิ่งใดๆ ทุกครั้งที่คุณเพิ่มข้อมูลลงในฐานข้อมูล ข้อมูลนั้นควรเป็นข้อมูลที่ถูกต้อง
intval( $_POST['โพสต์'] ); --- ถ้า $_POST['โพสต์']
มีค่าตัวเลขก็จะคืนค่าเป็นจริง ถ้าไม่จริงก็เท็จ
Escape : การรักษาความปลอดภัยเอาต์พุต
การหลบหนีคือการนำข้อมูลที่คุณมีอยู่แล้วและรักษาความปลอดภัยก่อนที่จะแสดงผลให้กับผู้ใช้ปลายทาง
การหลบหนี/การส่งสัญญาณออกจะช่วยขจัดความคลุมเครือและเพิ่มความชัดเจน
<h4> <?php echo esc_html( $title ); ?> </h4> --- esc_html()
ควรใช้ในบางครั้งที่องค์ประกอบ HTML ล้อมรอบส่วนของข้อมูลที่มีเอาต์พุตที่เรามี
esc_html ( สตริง $text )การหลบหนีสำหรับบล็อก HTML
esc_html_e ( สตริง $text )แสดงข้อความที่แปลแล้วซึ่งใช้ Escape เพื่อความปลอดภัยในเอาต์พุต HTML
esc_html__ ( สตริง $text )ดึงคำแปลของ $text และหลบหนีเพื่อการใช้งานอย่างปลอดภัยในเอาต์พุต HTML
<img alt="" src="<?php echo esc_url( $picture_url ); ?>
--- esc_url()ควรใช้ในแต่ละ URL รวมถึงในแอตทริบิวต์ 'src' และ 'href' ขององค์ประกอบ HTML
<?php echo esc_js( $value ); ?> --- esc_js()
มีไว้สำหรับ Javascript แบบอินไลน์
<ul class="<?php echo esc_attr( $stored_class ); ?>">
--- esc_attr()สามารถใช้ได้กับทุกอย่างที่พิมพ์เป็นแอตทริบิวต์ขององค์ประกอบ HTML
บันทึก :-
โปรดตรวจสอบลิงก์ด้านล่างเพื่อทำความเข้าใจว่าโฟลเดอร์เหล่านี้อยู่ที่ไหนและควรเรียกอย่างไรดีที่สุด
https://codex.wordpress.org/Determining_Plugin_and_Content_Directories
ถ้าเป็นไปได้ บันทึกข้อมูลลงในตาราง wp_options
เป้าหมายสุดท้ายของทั้งหมดนี้คือการรับรองว่าข้อมูลที่ไม่ถูกต้องและไม่ปลอดภัยจะไม่ถูกประมวลผลหรือแสดงเลย ทำความสะอาด ตรวจสอบ หนีทุกอย่าง นอกจากนี้อย่าเชื่อในผู้ใช้ในการป้อนข้อมูลที่มีเหตุผลเสมอ
ที่เกี่ยวข้อง: วิธีปรับแต่งหน้าเข้าสู่ระบบ WordPress
