ในการรักษาความปลอดภัยฐานข้อมูล WordPress อย่างมีประสิทธิภาพ เราควรรู้ว่า WordPress ใช้ฐานข้อมูลอย่างไร ช่องโหว่ของฐานข้อมูลที่แฮ็กเกอร์ใช้บ่อย และวิธีการหลีกเลี่ยงช่องโหว่เหล่านี้
WordPress ใช้ฐานข้อมูลอย่างไร
WordPress ใช้ PHP เป็นภาษาสคริปต์ (เพื่อจัดเก็บและดึงข้อมูลจากฐานข้อมูล) และ MySQL ใช้สำหรับการจัดการฐานข้อมูล โดยใช้คำสั่ง SQL ภายในมาร์กอัป PHP ตัวอย่างเช่น หากคุณลงชื่อเข้าใช้เว็บไซต์ธุรกิจที่ขับเคลื่อนด้วย WordPress SQL จะเป็นการเข้าสู่ระบบของคุณ แยก ID ผู้ใช้ของคุณและตรวจสอบความถูกต้อง และทำให้แน่ใจว่าข้อมูลโปรไฟล์ที่ถูกต้องจะแสดงที่ส่วนหน้า
PHP และ SQL ทำงานควบคู่กัน ซึ่งช่วยให้ WordPress สร้างประสบการณ์ใช้งานตามเนื้อหาแบบไดนามิกสำหรับผู้ใช้ ช่วยให้คุณปรับแต่งเนื้อหาเฉพาะสำหรับผู้ใช้บางคน เช่น ผู้ดูแลระบบ ผู้แก้ไข และสมาชิก
ปลั๊กอินและธีมยังใช้ฐานข้อมูล WordPress เพื่อจัดเก็บข้อมูล พวกเขาใช้ SQL ภายในมาร์กอัป PHP เพื่อสืบค้นฐานข้อมูลและส่งออกเนื้อหาแบบไดนามิก ปลั๊กอินอื่นๆ เช่น WP-DB Manager สามารถใช้เพื่อจัดการฐานข้อมูลได้อย่างง่ายดาย
บทความที่เกี่ยวข้อง:15 เคล็ดลับการกำหนดค่า WordPress เพื่อประหยัดเวลาของคุณ
จะรักษาความปลอดภัยฐานข้อมูล WordPress ได้อย่างไร
ฐานข้อมูล WordPress เป็นสมองของเว็บไซต์ WordPress เนื่องจากเก็บข้อมูลทั้งหมดที่เกี่ยวกับและบนเว็บไซต์ เช่น โพสต์ หน้า ความคิดเห็น แท็ก ผู้ใช้ หมวดหมู่ ฟิลด์ที่กำหนดเอง และตัวเลือกเว็บไซต์อื่นๆ ทำให้เป็นเป้าหมายที่น่าสนใจสำหรับนักแสดงที่ประสงค์ร้าย นักส่งสแปมและแฮกเกอร์เรียกใช้รหัสอัตโนมัติสำหรับการฉีด SQL นี่คือวิธีการรักษาความปลอดภัยฐานข้อมูล WordPress
บทความที่เกี่ยวข้อง:25 แนวทางปฏิบัติด้านความปลอดภัยของ WordPress ที่ดีที่สุด
1. เปลี่ยนชื่อผู้ใช้ของผู้ดูแลระบบ
เช่นเดียวกับ CMS อื่น ๆ WordPress ยังมีการเข้าสู่ระบบของผู้ดูแลระบบเริ่มต้น การไม่เปลี่ยนการเข้าสู่ระบบเริ่มต้นของผู้ดูแลระบบทำให้ผู้ประสงค์ร้ายเข้าถึงเว็บไซต์และฐานข้อมูลของคุณอย่างผิดกฎหมายได้ง่ายขึ้น
ใน WordPress ชื่อผู้ใช้เริ่มต้นคือ admin
. เปลี่ยนทันทีหากยังไม่ได้ทำ
- ไปที่ phpMyAdmin
- เรียกใช้แบบสอบถามต่อไปนี้ สิ่งนี้จะเปลี่ยนชื่อผู้ใช้จาก
admin
ถึงanything.
UPDATE {database_prefix}users SET user_login='anything' WHERE user_login='admin'; - ในกรณีของ WordPress หลายไซต์ คุณสามารถใช้
grant_super_admin()
ฟังก์ชันเพื่อให้สิทธิ์การเข้าถึงของผู้ดูแลระบบขั้นสูงและสิทธิ์ของผู้ดูแลระบบขั้นสูง
2. เปลี่ยนรหัสผู้ดูแลระบบ
ใน WordPress ชื่อผู้ดูแลระบบเริ่มต้นคือ admin
และ ID ผู้ใช้ผู้ดูแลระบบเริ่มต้นคือ 1 การโจมตีด้วยการฉีด SQL จำนวนมากได้ใช้ประโยชน์จากสิ่งนี้ ดังนั้น คุณควรเปลี่ยนแปลงสิ่งนี้โดยเร็วที่สุดเพื่อความปลอดภัยของฐานข้อมูล WordPress หากต้องการเปลี่ยน ID ผู้ดูแลระบบ
- ไปที่ phpMyAdmin
- เรียกใช้แบบสอบถามต่อไปนี้
UPDATE wp_users SET ID = 2807 WHERE ID = 1;
UPDATE wp_posts SET post_author = 2807 WHERE post_author = 1;
UPDATE wp_comments SET user_id = 2807 WHERE user_id = 1;
UPDATE wp_usermeta SET user_id = 2807 WHERE user_id = 1;
ALTER TABLE wp_users AUTO_INCREMENT = 2808
เคล็ดลับ: ขอแนะนำเป็นอย่างยิ่งให้คุณสร้างข้อมูลสำรองก่อนทำการเปลี่ยนแปลงใดๆ และดูการทำงานของเว็บไซต์หลังการเปลี่ยนแปลงแต่ละครั้งเพื่อให้แน่ใจว่าการเปลี่ยนแปลงจะไม่รบกวนการทำงานอื่นๆ ของเว็บไซต์
3. ในกรณีของ WordPress หลายไซต์ คุณต้องทำซ้ำสองสามบรรทัด สำหรับแต่ละไซต์ของเครือข่าย แบบนี้:
UPDATE wp_2_posts SET post_author = 5487 WHERE post_author = 1;
UPDATE wp_2_comments SET user_id = 5487 WHERE user_id = 1;
คุณยังสามารถเรียกใช้แบบสอบถามในลูปโดยใช้ PHP และ $wpdb.
3. เปลี่ยนคำนำหน้าฐานข้อมูล
คำนำหน้าฐานข้อมูล WordPress เริ่มต้นคือ wp_
. สำหรับฐานข้อมูล WordPress ที่ปลอดภัย ขอแนะนำอย่างยิ่งให้คุณเปลี่ยนคำนำหน้าเริ่มต้นในระหว่างขั้นตอนการติดตั้ง WordPress เอง
หากคุณยังไม่ได้ทำตอนนี้ ทำตามขั้นตอนเหล่านี้:
- เข้าถึงเว็บไซต์ของคุณผ่านไคลเอนต์ FTP
- นำทางไปยังไฟล์กำหนดค่าของคุณ wp_config.php ในไดเรกทอรีราก
- ค้นหาเส้นด้วย wp_ คำนำหน้าและเปลี่ยน
$table_prefix = 'wp_ga2807_';
- เปลี่ยนชื่อตารางฐานข้อมูล WordPress เริ่มต้นทั้งหมด
RENAME TABLE wp_comments TO wp_ga2807_comments;
RENAME TABLE wp_commentmeta TO wp_ga2807_commentmeta;
RENAME TABLE wp_links TO wp_ga2807_links;
RENAME TABLE wp_options TO wp_ga2807_options;
RENAME TABLE wp_postmeta TO wp_ga2807_postmeta;
RENAME TABLE wp_posts TO wp_ga2807_posts;
RENAME TABLE wp_terms TO wp_ga2807_terms;
RENAME TABLE wp_termmeta TO wp_ga2807_termmeta;
RENAME TABLE wp_term_relationships TO wp_ga2807_term_relationships;
RENAME TABLE wp_term_taxonomy TO wp_ga2807_term_taxonomy;
RENAME TABLE wp_usermeta TO wp_ga2807_usermeta;
RENAME TABLE wp_users TO wp_ga2807_users;
- แทนที่อินสแตนซ์ทั้งหมดของ
wp_
ในwp_ga2807_usermeta
และwp_ga2807_options
(อดีตwp_usermeta
และwp_options
ตารางตามลำดับ)
UPDATE wp_ga2807_options SET option_name = REPLACE(option_name, 'wp_', 'wp_ga2807_') WHERE option_name LIKE 'wp_%';
UPDATE wp_ga2807_usermeta SET meta_key = REPLACE(meta_key, 'wp_', 'wp_ga2807_') WHERE meta_key LIKE 'wp_%';
- ปลั๊กอินสร้างตารางของตนเองในฐานข้อมูล สิ่งสำคัญคือต้องเปลี่ยนชื่อตารางเหล่านี้ด้วย ตัวอย่างเช่น WooCommerce เป็นปลั๊กอิน WordPress ที่ใช้กันอย่างแพร่หลาย หากต้องการเปลี่ยนชื่อตารางใน WooCommerce ให้เรียกใช้แบบสอบถามต่อไปนี้
RENAME TABLE wp_woocommerce_api_keys TO wp_ga2807_woocommerce_api_keys;
RENAME TABLE wp_woocommerce_attribute_taxonomies TO wp_ga2807_woocommerce_attribute_taxonomies;
RENAME TABLE wp_woocommerce_downloadable_product_permissions TO wp_ga2807_woocommerce_downloadable_product_permissions;
RENAME TABLE wp_woocommerce_order_itemmeta TO wp_ga2807_woocommerce_order_itemmeta;
RENAME TABLE wp_woocommerce_order_items TO wp_ga2807_woocommerce_order_items;
RENAME TABLE wp_woocommerce_payment_tokenmeta TO wp_ga2807_woocommerce_payment_tokenmeta;
RENAME TABLE wp_woocommerce_payment_tokens TO wp_ga2807_woocommerce_payment_tokens;
RENAME TABLE wp_woocommerce_sessions TO wp_ga2807_woocommerce_sessions;
หมายเหตุ:คุณสามารถเปลี่ยนคำนำหน้าฐานข้อมูลโดยใช้ปลั๊กอินได้เช่นกัน 'เปลี่ยนคำนำหน้าตาราง' เป็นปลั๊กอินที่สะดวกสำหรับสิ่งนี้
4. สิทธิ์ผู้ใช้ฐานข้อมูลที่เข้มงวด
สิทธิ์ของผู้ใช้ที่เข้มงวดจะรักษาความปลอดภัยฐานข้อมูล WordPress ได้ดีขึ้น ผู้ใช้ MySQL ที่ระบุใน wp-config.php ไฟล์ควรมีสิทธิ์ที่เข้มงวด ระหว่างการติดตั้ง ผู้ใช้ฐานข้อมูลมีสิทธิ์ทั้งหมดในการตั้งค่าตารางและวัตถุที่จำเป็น แต่ควรเป็นมาตรการชั่วคราว หลังการติดตั้ง ผู้ใช้ MySQL ต้องการเพียงสิทธิ์ DATA READ และ DATA WRITE
5. สร้างการสำรองข้อมูล
สร้างการสำรองข้อมูลก่อนทำการเปลี่ยนแปลงใดๆ ในเว็บไซต์หรือฐานข้อมูลของคุณ ย้ำว่าสร้างแบ็คอัพ! การสร้างการสำรองข้อมูลปกติจะมีประโยชน์มากในกรณีที่เกิดการติดไวรัส คุณสามารถกู้คืนข้อมูลสำรองและลบไฟล์ที่ติดไวรัสได้
แต่ถึงแม้จะสำรองข้อมูลกลับคืนมา ช่องโหว่ที่ผู้โจมตีใช้ก็ยังไม่ได้รับการแก้ไข คุณลงชื่อสมัครใช้การประเมินช่องโหว่ของ Astra และการทดสอบการเจาะระบบเพื่อเปิดเผยช่องโหว่ด้านความปลอดภัยและแบ็คดอร์ที่ซ่อนอยู่ในเว็บไซต์ของคุณได้
6. ลบตารางที่กำหนดเอง
ขอแนะนำให้คุณลบตารางแบบกำหนดเองออกจากฐานข้อมูลของคุณหลังจากลบส่วนขยายของเว็บไซต์ออกจากไซต์ของคุณ มิฉะนั้น คุณจะรวบรวมตารางที่ไม่ได้ใช้จำนวนมากในฐานข้อมูลของคุณ ปลั๊กอินบางตัวมาพร้อมกับตัวเลือกในการลบข้อมูลทั้งหมดจากเว็บไซต์และฐานข้อมูลโดยอัตโนมัติเมื่อคุณถอนการติดตั้ง
หมายเหตุ:ลบตารางเฉพาะสำหรับปลั๊กอินที่คุณจะไม่ติดตั้งอีกแน่นอน เพราะเมื่อลบตารางที่กำหนดเองแล้วจะไม่มีการย้อนกลับ
บทความที่เกี่ยวข้อง:7 ข้อผิดพลาดทั่วไปของ WordPress ที่ทุกคนทำ
บทสรุป
แม้จะมีมาตรการที่ถูกต้องทั้งหมด แต่ก็ไม่สามารถรับประกันความปลอดภัยได้ 100% แฮกเกอร์กำลังหาวิธีใหม่ในการเข้าถึงเว็บไซต์และฐานข้อมูล การติดตั้งไฟร์วอลล์เหนือสิ่งอื่นใดเป็นวิธีที่ดีที่สุดที่คุณสามารถบันทึก WordPress ของคุณจากคำขอภัยคุกคามที่จะมาถึง ด้วยไฟร์วอลล์ของ Astra ที่ดูแลความปลอดภัยของเว็บไซต์ของคุณ คุณสามารถมุ่งความสนใจไปที่การขยายธุรกิจของคุณได้
พบว่าบทความนี้มีประโยชน์? แบ่งปันกับเพื่อนของคุณใน Facebook, Twitter, LinkedIn