การรักษาความปลอดภัยและการแข็งตัวของ WordPress คู่มือฉบับสมบูรณ์
เผยแพร่แล้ว: 2021-01-26WordPress เป็นที่นิยมอย่างมาก ทุกๆ 1 ใน 5 ไซต์บนอินเทอร์เน็ตใช้ WordPress ในรูปแบบใดรูปแบบหนึ่ง ไม่ว่าจะเป็นการเรียกใช้บล็อกที่เรียบง่ายหรือระบบจัดการเนื้อหาหลายไซต์ (CMS) หรือไซต์อีคอมเมิร์ซ ด้วยเหตุนี้ จึงไม่น่าแปลกใจเลยที่เว็บไซต์ WordPress จะเป็นเป้าหมายที่ได้รับความนิยมอย่างมากสำหรับทั้งแฮกเกอร์ผู้มีประสบการณ์และสคริปต์เด็ก
สิ่งสุดท้ายที่ผู้ดูแลเว็บต้องการก็คือการค้นหาว่าเว็บไซต์ของตนถูกแฮ็ก อาจถูกจับเป็นตัวประกันและเป็นส่วนหนึ่งของบ็อตเน็ต การแพร่กระจายมัลแวร์ หรือเข้าร่วมในการโจมตีแบบปฏิเสธการให้บริการ (DoS) ในบทความนี้เราจะแบ่งปันเคล็ดลับและกลยุทธ์จำนวนหนึ่งเพื่อช่วยให้คุณพัฒนาเว็บไซต์ WordPress ของคุณให้แข็งแกร่งขึ้น
สารบัญ
- WordPress ปลอดภัยหรือไม่?
- ปลั๊กอินและธีม
- รันซอฟต์แวร์น้อยลง
- ยึดถือหลักอภิสิทธิ์น้อยที่สุด
- อัปเดตปลั๊กอินและธีม WordPress ของคุณ
- อยู่ห่างจากปลั๊กอินและธีม WordPress ที่ 'ว่างเปล่า'
- อัพเดท WordPress อยู่เสมอ
- โฮสติ้ง WordPress
- แดชบอร์ด WordPress
- ปิดการใช้งานการลงทะเบียน
- ข้อมูลประจำตัว
- การรับรองความถูกต้องด้วยสองปัจจัย (2FA)
- การแข็งตัวของแกน WordPress
- ปิดใช้งานการบันทึกการดีบัก
- ปิดใช้งาน XML-RPC
- จำกัด WordPress REST API
- ป้องกันการเปิดเผยเวอร์ชัน WordPress
- ป้องกันการแจกแจงผู้ใช้ WordPress
- ปิดการใช้งานตัวแก้ไขไฟล์ WordPress
- ปิดใช้งานการจัดการธีมและปลั๊กอิน
- TLS (SSL)
- บทสรุปและขั้นตอนต่อไป
WordPress ปลอดภัยหรือไม่?
นี่เป็นคำถามที่ผู้ดูแลระบบหลายคนถามและถูกต้อง แม้ว่า WordPress จะถูกสร้างขึ้นมาอย่างดีและปลอดภัย แต่ก็มีชื่อเสียงในด้านความเสี่ยงด้านความปลอดภัยและไม่เป็น "ระดับองค์กร" ชื่อเสียงนั้นไม่ยุติธรรมเลย บ่อยครั้ง ปัญหาอยู่ที่ WordPress ว่าเป็นชุดซอฟต์แวร์ที่ได้รับความนิยมอย่างไม่น่าเชื่อ ซึ่งง่ายต่อการตั้งค่าในขณะที่ใช้ทางลัดด้านความปลอดภัย ซึ่งนำเราไปสู่หัวข้อแรกของเรา — ปลั๊กอินและธีม
ปลั๊กอินและธีม
ปัญหาอันดับหนึ่งที่รบกวนความปลอดภัยของ WordPress ก็เป็นสิ่งที่ทำให้เป็นที่นิยมอย่างไม่น่าเชื่อ ปลั๊กอินและธีมของ WordPress มีความแตกต่างกันในด้านคุณภาพและความปลอดภัย ในขณะที่ทีม WordPress ได้ทำงานมากมายเพื่อช่วยนักพัฒนาสร้างปลั๊กอินและธีมที่ปลอดภัยยิ่งขึ้น พวกเขายังคงเป็นฝันร้ายด้านความปลอดภัย สิ่งนี้สามารถสังเกตได้เมื่อใช้ปลั๊กอินที่ได้รับการดูแลไม่ดีหรือปลั๊กอินที่ได้รับจากแหล่งที่ไม่สมบูรณ์
ก่อนที่เราจะพูดถึงปลั๊กอินและธีมของ WordPress ก่อนอื่นเรามาทำความเข้าใจว่าจริงๆ แล้วปลั๊กอิน WordPress คืออะไร ปลั๊กอินเป็นเพียงโค้ด PHP ที่กำหนดเองซึ่ง WordPress ทำงานเพื่อขยายฟังก์ชันการทำงานของ WordPress สำหรับคำอธิบายโดยละเอียดและทางเทคนิคเพิ่มเติม โปรดดูที่ ปลั๊กอิน WordPress คืออะไร
ในทำนองเดียวกัน ธีม WordPress อนุญาตให้ปรับแต่งรูปลักษณ์ของไซต์ WordPress ของคุณได้ จากมุมมองของผู้โจมตี มีความแตกต่างกันเล็กน้อยระหว่างทั้งสอง เนื่องจากทั้งคู่สามารถใช้ในทางที่ผิดเพื่อเรียกใช้โค้ดที่เป็นอันตราย
รันซอฟต์แวร์น้อยลง
แล้วคุณจะทราบได้อย่างไรว่าปลั๊กอินเป็นอันตรายหรือไม่? นั่นเป็นคำถามที่ซับซ้อน แต่โชคดีที่เรามีคำตอบสำหรับคุณ เราได้เขียนรายละเอียดเกี่ยวกับวิธีการเลือกปลั๊กอิน WordPress ที่ดีที่สุดสำหรับเว็บไซต์ WordPress ของคุณ
แม้ว่าคุณจะทำการวิจัยที่จำเป็นทั้งหมด แต่ก็ยังมีโอกาสที่ปลั๊กอินอาจเป็นภัยคุกคามด้านความปลอดภัย ดังนั้น วิธีหนึ่งในการลดความเสี่ยงคือการเรียกใช้ซอฟต์แวร์ที่คุณต้องการและไว้วางใจเท่านั้น ก่อนติดตั้งปลั๊กอิน WordPress ใหม่ ให้ถามตัวเองว่าคุณจำเป็นต้องติดตั้งปลั๊กอินนั้น จริงๆ หรือไม่ ข้อมูลโค้ดขนาดเล็กในปลั๊กอินเฉพาะไซต์สามารถทำเคล็ดลับได้หรือไม่ หรือคุณต้องการปลั๊กอินที่ทำงานเต็มประสิทธิภาพโดยชอบด้วยกฎหมายหรือไม่
สำคัญ — ระมัดระวังตัวให้มากด้วยข้อมูลโค้ดที่คุณพบบนอินเทอร์เน็ต อย่าใช้โค้ดแม้แต่นิดเดียว เว้นแต่คุณจะเข้าใจอย่างถ่องแท้ว่ากำลังทำอะไร เพียงเพราะอยู่ใน StackOverflow ไม่ได้หมายความว่าปลอดภัยที่จะใช้
หากคุณมีความต้องการใช้งานปลั๊กอินอย่างแท้จริง ตรวจสอบให้แน่ใจว่าปลั๊กอินนั้นได้รับการบำรุงรักษาและอัปเดตอย่างสม่ำเสมอตามที่เราอธิบายในคู่มือของเรา ตามหลักการทั่วไป ยิ่งดาวน์โหลดและอัปเดตล่าสุดของปลั๊กอินหรือธีมมากขึ้น แสดงว่ามีการใช้งานอย่างกว้างขวางและผู้เขียนดูแลปลั๊กอินนี้อย่างแข็งขัน นี่ไม่ได้หมายความว่าปลั๊กอินจะไม่มีช่องโหว่ อย่างไรก็ตาม หากพบช่องโหว่ ผู้พัฒนาจะดำเนินการอย่างรวดเร็วและแก้ไขปัญหาอย่างรวดเร็ว
พยายามหลีกเลี่ยงปลั๊กอินที่มีการดาวน์โหลดไม่มากและที่สำคัญ ไม่มีชุมชนที่ใช้งานอยู่และการอัปเดตเป็นประจำ หากบางสิ่งยังไม่ได้รับการอัปเดตภายในหนึ่งปี โดยทั่วไปจะเป็นสัญญาณไฟแดง
ยึดถือหลักอภิสิทธิ์น้อยที่สุด
WordPress ไม่จำเป็นต้องใช้ผู้ใช้ root ของ MySQL เพื่อเชื่อมต่อกับฐานข้อมูล ผู้ใช้ WordPress ทุกคนไม่จำเป็นต้องมีบทบาทเป็นผู้ดูแลระบบ ในทำนองเดียวกัน ไม่ควรเรียกใช้โปรแกรมส่วนใหญ่ในฐานะผู้ใช้ที่มีสิทธิพิเศษ เว้นแต่จะมีเหตุผลเฉพาะเจาะจงในการทำเช่นนั้น
แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัยกำหนดเสมอว่าแอปพลิเคชันจะได้รับสิทธิ์น้อยที่สุดเท่าที่จะเป็นไปได้ ซึ่งช่วยให้ทำงานได้อย่างถูกต้อง โดยปิดใช้งานสิทธิ์เพิ่มเติมใดๆ การปฏิบัตินี้มักเรียกว่าหลักการของสิทธิพิเศษน้อยที่สุด
สมมุติสมมุติฐานว่า WordPress กำลังเชื่อมต่อกับฐานข้อมูลด้วยบัญชีผู้ใช้ที่มีสิทธิ์ ในกรณีของปลั๊กอิน WordPress ที่มีช่องโหว่ในการฉีด SQL ผู้โจมตีอาจไม่เพียงแต่เรียกใช้คำสั่ง SQL ในฐานะผู้ดูแลระบบเท่านั้น แต่ในบางกรณี พวกเขาอาจยังสามารถดำเนินการคำสั่งของระบบปฏิบัติการได้อีกด้วย หากผู้โจมตีดำเนินการคำสั่งของระบบปฏิบัติการได้สำเร็จ พวกเขาอาจสามารถทำการลาดตระเวนและขยายการโจมตีไปยังระบบอื่น ๆ ได้
การเรียกใช้ซอฟต์แวร์ที่มีสิทธิ์ของผู้ดูแลระบบ หรือการให้ผู้ใช้เข้าถึงได้มากเกินความจำเป็นทำให้เกิดปัญหา มันขัดกับหลักการของสิทธิ์ขั้นต่ำที่ทดลองและทดสอบแล้ว เนื่องจากมันทำให้ผู้โจมตีสร้างความเสียหายได้มากขึ้นในกรณีที่มีการละเมิดความปลอดภัย
ข้อดีของ WordPress คือมีหลายบทบาทในตัว ซึ่งคุณสามารถใช้เพื่อกำหนดสิทธิ์ที่แตกต่างกันให้กับผู้ใช้ที่แตกต่างกัน ขึ้นอยู่กับความต้องการของพวกเขา เราได้เขียนเกี่ยวกับเรื่องนี้อย่างละเอียดเกี่ยวกับวิธีใช้บทบาทผู้ใช้ WordPress เพื่อปรับปรุงความปลอดภัยของ WordPress
อัปเดตปลั๊กอินและธีม WordPress ของคุณ
การอัปเดตปลั๊กอินและธีมของ WordPress มีความสำคัญไม่เพียงแต่จะได้รับประโยชน์จากฟังก์ชันการทำงานใหม่และการแก้ไขข้อผิดพลาดเท่านั้น แต่ยังรวมถึงการแก้ไขช่องโหว่ด้านความปลอดภัยด้วย ทั้งปลั๊กอินและธีมสามารถอัปเดตได้ง่ายภายในอินเทอร์เฟซของ WordPress
ปลั๊กอินเชิงพาณิชย์บางตัวอาจมีกลไกของตัวเองในการทำให้ปลั๊กอินทันสมัยอยู่เสมอ อย่างไรก็ตาม ในกรณีส่วนใหญ่ การดำเนินการนี้จะโปร่งใสต่อผู้ใช้ อย่างไรก็ตาม ตรวจสอบให้แน่ใจว่ามีการใช้ระบบอัปเดตใด ๆ คุณทำให้ปลั๊กอินและธีมของคุณทันสมัยอยู่เสมอ
อย่าใช้ปลั๊กอินและธีม WordPress ที่ 'ว่างเปล่า'
WordPress ใช้ประโยชน์จาก GPL 1 . ใบอนุญาต GPL ช่วยให้ทุกคนสามารถแจกจ่ายซอฟต์แวร์ที่ได้รับอนุญาต GPL ได้อย่างอิสระโดยไม่ต้องลงรายละเอียดมากนัก ซึ่งรวมถึงธีมและปลั๊กอิน WordPress เชิงพาณิชย์/พรีเมียมที่ได้รับอนุญาต GPL ดังนั้นการดาวน์โหลดตัวแก้ไขจึง อาจ ไม่ผิดกฎหมาย ซึ่งปกติจะเรียกว่า nulled ธีมพรีเมียมหรือปลั๊กอิน และใช้งานได้ฟรี
อย่างไรก็ตาม ตามที่คุณอาจเดาได้อยู่แล้ว นอกเหนือจากไม่สนับสนุนนักพัฒนาปลั๊กอินแล้ว คุณไม่น่าจะได้รับการอัปเดตสำหรับปลั๊กอินที่ไม่มีผลมากนัก ยิ่งไปกว่านั้น คุณไม่มีทางรู้ได้เลยว่าแหล่งที่มาของปลั๊กอินนี้ได้รับการแก้ไขเพื่อทำสิ่งชั่วร้ายหรือไม่
อัพเดท WordPress อยู่เสมอ
เช่นเดียวกับที่คุณควรทำให้ปลั๊กอินและธีมของคุณทันสมัยอยู่เสมอ คุณควรทำให้ WordPress เวอร์ชันที่คุณใช้อยู่เป็นปัจจุบันอยู่เสมอ โชคดีที่ตอนนี้ทำได้ง่ายกว่าเมื่อก่อนมาก โดยมีการอัปเดตความปลอดภัยที่สำคัญเกิดขึ้นโดยอัตโนมัติ แน่นอน เว้นแต่คุณจะปิดการใช้งานฟังก์ชันนี้อย่างชัดเจน
นอกเหนือจากคุณสมบัติใหม่ การปรับปรุง และการแก้ไขข้อบกพร่องแล้ว การอัปเดตหลักของ WordPress ยังมีการแก้ไขด้านความปลอดภัยซึ่งอาจปกป้องคุณจากผู้โจมตีที่ใช้ประโยชน์จากเว็บไซต์ WordPress ของคุณและใช้เพื่อผลประโยชน์ที่เลวร้าย
โฮสติ้ง WordPress
สถานที่และวิธีที่คุณเลือกโฮสต์ไซต์ WordPress จะขึ้นอยู่กับความต้องการของคุณเป็นอย่างมาก แม้ว่าการโฮสต์และการจัดการ WordPress ด้วยตัวเองจะไม่มีอะไรผิดปกติ แต่ถ้าคุณไม่เข้าใจในทางเทคนิค หรือคุณต้องการแน่ใจว่าได้ปฏิบัติตามพื้นฐานการรักษาความปลอดภัย WordPress ส่วนใหญ่โดยไม่ต้องทำอะไรมาก คุณอาจต้องการเลือกใช้ ผู้ให้บริการโฮสติ้ง WordPress ที่มีการจัดการ เช่น Kinsta หรือ WP Engine
เนื่องจากเรามีเว็บไซต์ที่โฮสต์กับโฮสต์ทั้งสอง เราจึงได้เขียนเกี่ยวกับพวกเขา ในเรื่องราวของลูกค้าของเรา เราเน้นย้ำถึงประสบการณ์ของเรากับพวกเขา หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับประสบการณ์ของคุณ โปรดอ่านเรื่องราวของลูกค้า WP Engine และ Kinsta การจัดการโฮสติ้ง WordPress ช่วยลดการตัดสินใจด้านความปลอดภัยและการกำหนดค่าต่างๆ ที่คุณต้องกังวลเกี่ยวกับตัวคุณเอง
แน่นอนว่าโฮสติ้ง WordPress ที่มีการจัดการอาจไม่เหมาะกับคุณเช่นกัน คุณอาจเลือกที่จะโฮสต์ WordPress ด้วยตัวเอง โดยเฉพาะอย่างยิ่งหากคุณมีงบประมาณจำกัด โฮสติ้ง WordPress ด้วยตนเองยังช่วยให้คุณควบคุมการติดตั้ง WordPress ได้ดียิ่งขึ้น หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับตัวเลือกโฮสติ้ง WordPress ต่างๆ และสิ่งที่ดีที่สุดสำหรับคุณ โปรดดูคำแนะนำในการเลือกโฮสติ้ง WordPress
แดชบอร์ด WordPress
แดชบอร์ด WordPress ของเว็บไซต์ของคุณเป็นที่ที่คุณไม่ต้องการให้ใครที่ไม่ได้รับอนุญาตแอบแฝง แม้ว่าจะมีบางไซต์ที่มีเหตุผลที่ถูกต้องในการอนุญาตให้ผู้ใช้สาธารณะเข้าสู่ระบบโดยใช้แดชบอร์ดของ WordPress ได้ แต่นี่เป็นความเสี่ยงด้านความปลอดภัย อย่างมาก และต้องได้รับการพิจารณา อย่าง รอบคอบ
โชคดีที่เว็บไซต์ WordPress ส่วนใหญ่ไม่มีข้อกำหนดนี้ ดังนั้นควรป้องกันการเข้าถึงแดชบอร์ดของ WordPress มีหลายวิธีในการทำเช่นนี้ และคุณควรเลือกสิ่งที่ดีที่สุดสำหรับคุณ
แนวทางปฏิบัติทั่วไปคือการจำกัดการเข้าถึงด้วยรหัสผ่านเพื่อป้องกันหน้า WordPress Admin (wp-admin) อีกวิธีหนึ่งคืออนุญาตการเข้าถึง /wp-admin ไปยังที่อยู่ IP ที่เลือกจำนวนหนึ่งเท่านั้น
ปิดการใช้งานการลงทะเบียน
ตามค่าเริ่มต้น WordPress ไม่อนุญาตให้ผู้ใช้สาธารณะลงทะเบียนกับเว็บไซต์ WordPress ของคุณ เพื่อยืนยันว่าการลงทะเบียนผู้ใช้ถูกปิดใช้งาน:
- ตรงไปที่ การตั้งค่า > หน้า ทั่วไป ในพื้นที่แดชบอร์ด WordPress ของคุณ
- ไปที่ส่วน สมาชิก
- ตรวจสอบให้แน่ใจว่าไม่ได้เลือกช่องทำเครื่องหมายถัดจาก ใครก็ตามที่สามารถลงทะเบียน ได้
ข้อมูลประจำตัว
เช่นเดียวกับเว็บไซต์อื่นๆ การเข้าถึงแดชบอร์ด WordPress ของคุณนั้นแข็งแกร่งพอๆ กับข้อมูลประจำตัวของคุณ การบังคับใช้การรักษาความปลอดภัยด้วยรหัสผ่าน WordPress ที่แข็งแกร่งเป็นการควบคุมความปลอดภัยที่สำคัญของระบบใดๆ และ WordPress ก็ไม่มีข้อยกเว้น
แม้ว่า WordPress จะไม่มีทางกำหนดนโยบายรหัสผ่านได้ แต่ปลั๊กอินเช่น WPassword นั้นมีความจำเป็นอย่างยิ่งในการบังคับใช้ข้อกำหนดความเข้มงวดของรหัสผ่านกับผู้ใช้ทั้งหมดของคุณที่สามารถเข้าถึงแดชบอร์ดของ WordPress
เมื่อคุณบังคับใช้การรักษาความปลอดภัยด้วยรหัสผ่านที่เข้มงวดบนเว็บไซต์ของคุณแล้ว ให้ใช้ WPScan เพื่อทดสอบข้อมูลประจำตัวของ WordPress ที่ไม่ปลอดภัย เพื่อให้แน่ใจว่าไม่มีบัญชีใดยังคงใช้รหัสผ่านที่ไม่รัดกุม
การรับรองความถูกต้องด้วยสองปัจจัย (2FA)
การควบคุมความปลอดภัยที่สำคัญอีกประการสำหรับแดชบอร์ด WordPress ของคุณคือต้องมีการรับรองความถูกต้องด้วยสองปัจจัย การรับรองความถูกต้องด้วยสองปัจจัย (2FA) ทำให้ผู้โจมตีเข้าถึงแดชบอร์ด WordPress ได้ยากขึ้นอย่างมาก หากผู้โจมตีจัดการเพื่อเปิดเผยรหัสผ่านของผู้ใช้ (เช่น ผู้โจมตีอาจค้นพบรหัสผ่านของผู้ใช้จากการละเมิดข้อมูล)
โชคดีที่การติดตั้งการรับรองความถูกต้องด้วยสองปัจจัยบน WordPress ทำได้ง่ายมาก มีปลั๊กอินคุณภาพสูงจำนวนหนึ่งที่คุณสามารถใช้เพื่อเพิ่มฟังก์ชันนี้ได้ อ่านปลั๊กอินการตรวจสอบสิทธิ์สองปัจจัยที่ดีที่สุดสำหรับ WordPress เพื่อดูไฮไลท์ของปลั๊กอิน 2FA อันดับต้น ๆ ที่มีให้สำหรับ WordPress
การแข็งตัวของแกน WordPress
แม้ว่าแกนกลางของ WordPress จะเป็นซอฟต์แวร์ที่ปลอดภัย แต่ก็ไม่ได้หมายความว่าเราไม่สามารถทำให้มันแข็งแกร่งขึ้นได้อีก ต่อไปนี้คือกลยุทธ์การเสริมความแข็งแกร่งจำนวนหนึ่งสำหรับแกนหลักของ WordPress
ตรวจสอบให้แน่ใจว่าปิดการบันทึกการดีบักอยู่
WordPress ช่วยให้นักพัฒนาสามารถบันทึกข้อความการดีบักไปยังไฟล์ได้ (โดยค่าเริ่มต้นคือ /wp-content/debug.log) แม้ว่าสิ่งนี้จะยอมรับได้อย่างสมบูรณ์ในสภาพแวดล้อมการพัฒนา แต่โปรดจำไว้ว่าผู้โจมตีสามารถเข้าถึงไฟล์นี้ได้อย่างง่ายดาย หากไฟล์และ/หรือการตั้งค่าเดียวกันนำไปสู่การผลิต
การดีบัก WordPress ถูกปิดใช้งานโดยค่าเริ่มต้น แม้ว่าจะเป็นการดีกว่าเสมอที่จะตรวจสอบซ้ำ — ตรวจสอบให้แน่ใจว่าคุณไม่มีค่าคงที่ WP_DEBUG ที่กำหนดไว้ในไฟล์ wp-config.php ของคุณ หรือตั้งค่าเป็นเท็จอย่างชัดแจ้ง ดูคู่มือการดีบัก WordPress สำหรับรายการตัวเลือกการดีบักทั้งหมด
หากคุณต้องการบันทึกการดีบัก WordPress ในเว็บไซต์ชีวิตของคุณด้วยเหตุผลบางประการ ให้เข้าสู่ระบบไฟล์นอกรูทของเว็บเซิร์ฟเวอร์ของคุณ (เช่น /var/log/wordpress/debug.log) ในการเปลี่ยน pa
define('WP_DEBUG_LOG', '/path/outside/of/webserver/root/debug.log');
ปิดใช้งาน XML-RPC
ข้อกำหนด XML-RPC ของ WordPress ได้รับการออกแบบมาเพื่อให้สามารถสื่อสารระหว่างระบบต่างๆ ได้ ซึ่งหมายความว่าแทบทุกแอปพลิเคชันสามารถโต้ตอบกับ WordPress ได้ ข้อกำหนดของ WordPress XML-RPC มีความสำคัญในอดีตสำหรับ WordPress ช่วยให้สามารถโต้ตอบและรวมเข้ากับระบบและซอฟต์แวร์อื่น ๆ
สิ่งที่ดีคือ XML-RPC ถูกแทนที่โดย WordPress REST API เพื่อเน้นข้อกังวลด้านความปลอดภัยบางประการเกี่ยวกับ XML-RPC อินเทอร์เฟซเป็นแหล่งที่มาของช่องโหว่ด้านความปลอดภัยมากมายในช่วงหลายปีที่ผ่านมา นอกจากนี้ยังสามารถใช้โดยผู้โจมตีเพื่อระบุชื่อผู้ใช้ รหัสผ่านเดรัจฉานบังคับ หรือการโจมตีแบบปฏิเสธบริการ (DoS) ผ่าน Pingback ของ XML-RPC
ดังนั้น เว้นแต่ว่าคุณกำลังใช้งาน XML-RPC และมีการควบคุมความปลอดภัยที่เหมาะสม คุณควรปิดใช้งาน เนื่องจากเป็นสิ่งที่ทำได้ง่ายโดยไม่ต้องติดตั้งปลั๊กอินของบุคคลที่สาม เราจะอธิบายวิธีการดำเนินการด้านล่าง
แม้ว่าคุณจะกำหนดค่าเว็บเซิร์ฟเวอร์ของคุณให้บล็อกการเข้าถึง /xmlrpc.php ได้ง่ายๆ แต่วิธีการที่แนะนำคือปิดการใช้งาน XML-RPC โดยใช้ ตัวกรอง WordPress ในตัว เพียงเพิ่มสิ่งต่อไปนี้ลงในไฟล์ปลั๊กอินและเปิดใช้งานบนไซต์ของคุณ
add_filter('xmlrpc_enabled', '__return_false');
หัวขึ้น
- เป็นความคิดที่ดีที่จะใช้ WordPress ต้องใช้ ปลั๊กอินสำหรับข้อมูลโค้ดนี้และข้อมูลโค้ดอื่นที่คล้ายคลึงกัน
จำกัด WordPress REST API
ในแนวเดียวกันกับ XML-RPC WordPress API เป็นวิธีที่ทันสมัยสำหรับแอปพลิเคชันบุคคลที่สามในการสื่อสารกับ WordPress แม้ว่าจะปลอดภัยในการใช้งาน แต่ก็แนะนำให้จำกัดฟังก์ชันบางอย่างภายในเพื่อป้องกันการแจงนับผู้ใช้และช่องโหว่อื่นๆ ที่อาจเกิดขึ้น ไม่เหมือนกับ XML-RPC ตรงที่ WordPress ไม่มีวิธีง่ายๆ ในการปิดใช้งาน REST API ทั้งหมด (ซึ่งเคยใช้กับ 2 แต่สิ่งนี้เลิกใช้แล้ว ดังนั้นจึงควรที่จะไม่ทำเช่นนั้นอีกต่อไป) อย่างไรก็ตาม คุณสามารถจำกัดได้
ตามปกติใน WordPress คุณอาจใช้ปลั๊กอินเพื่อทำสิ่งนี้ หรือคุณสามารถเพิ่มตัวกรองต่อไปนี้ในไฟล์ปลั๊กอินและเปิดใช้งานบนเว็บไซต์ของคุณ รหัสต่อไปนี้จะปิดใช้งาน WordPress REST API สำหรับผู้ที่ไม่ได้เข้าสู่ระบบโดยส่งคืนรหัสสถานะ HTTP ที่ ไม่ได้รับอนุญาต (รหัสสถานะ 401) โดยใช้ส่วนที่เหลือของ hook WordPress
add_filter( 'rest_authentication_errors', function( $result ) { if ( ! empty( $result ) ) { return $result; } if ( ! is_user_logged_in() ) { return new WP_Error( 'rest_not_logged_in', 'You are not currently logged in.', array( 'status' => 401 ) ); } return $result; });
นอกจากนี้ WordPress REST API ยังเปิดใช้งาน JSONP โดยค่าเริ่มต้น JSONP เป็นเทคนิคเก่าในการเลี่ยงผ่านนโยบายต้นกำเนิดเดียวกันของเบราว์เซอร์ ก่อนที่เบราว์เซอร์สมัยใหม่จะรองรับ CORS (การแชร์ทรัพยากรข้ามที่มา) เนื่องจากสิ่งนี้สามารถใช้ เป็น ขั้นตอนในการโจมตีโดยผู้โจมตี จึงไม่มีเหตุผลที่แท้จริงที่จะเปิดใช้งานสิ่งนี้ ขอแนะนำให้ปิดการใช้งานโดยใช้ตัวกรอง WordPress rest_jsonp_enabled โดยใช้ข้อมูลโค้ด PHP ต่อไปนี้
add_filter('rest_enabled', '__return_false');
โปรดดูเอกสารประกอบของตัวกรองสำหรับข้อมูลเพิ่มเติม
ป้องกันการเปิดเผยเวอร์ชัน WordPress
เช่นเดียวกับแอปพลิเคชันเว็บอื่น ๆ โดยค่าเริ่มต้น WordPress จะเปิดเผยเวอร์ชันของตนในที่ต่างๆ การเปิดเผยเวอร์ชันไม่ใช่ช่องโหว่ด้านความปลอดภัยอย่างแน่นอน อย่างไรก็ตาม ข้อมูลนี้มีประโยชน์มากสำหรับผู้โจมตีเมื่อวางแผนโจมตี ด้วยเหตุนี้ การปิดใช้งานคุณลักษณะการเปิดเผยเวอร์ชันของ WordPress อาจทำให้การโจมตีทำได้ยากขึ้นเล็กน้อย
WordPress รั่วไหลข้อมูลเวอร์ชัน จำนวนมาก โชคดีที่ส่วนสำคัญของ GitHub นี้มีรายการตัวกรอง WordPress ที่ครอบคลุมเพื่อปิดการใช้งานในรูปแบบของปลั๊กอิน WordPress แน่นอน คุณสามารถรวมโค้ดนี้เข้ากับปลั๊กอินเฉพาะไซต์หรือปลั๊กอินที่ต้องใช้ที่คุณมีอยู่แล้วได้
ป้องกันการแจกแจงผู้ใช้ WordPress
WordPress มีความเสี่ยงต่อการโจมตีการแจงนับผู้ใช้จำนวนหนึ่ง การโจมตีดังกล่าวทำให้ผู้โจมตีสามารถระบุได้ว่าผู้ใช้มีตัวตนอยู่หรือไม่ ไม่ว่าผู้ใช้จะมีอยู่จริงหรือไม่ก็ตาม แม้ว่าสิ่งนี้อาจดูเหมือนไม่เป็นอันตราย แต่พึงระลึกไว้เสมอว่าผู้โจมตีอาจใช้ข้อมูลนี้เป็นส่วนหนึ่งของการโจมตีที่ใหญ่กว่า สำหรับข้อมูลเพิ่มเติมเกี่ยวกับหัวข้อนี้ อ่านวิธีระบุผู้ใช้ WordPress ด้วย WPScan
เพื่อป้องกันการแจกแจงผู้ใช้ WordPress คุณจะต้องตรวจสอบให้แน่ใจว่าคุณลักษณะ WordPress ต่อไปนี้ถูกปิดใช้งานหรือถูกจำกัด
- จำกัด WordPress REST API สำหรับผู้ใช้ที่ไม่ผ่านการตรวจสอบสิทธิ์
- ปิดการใช้งาน WordPress XML-RPC
- อย่าเปิดเผย /wp-admin และ /wp-login.php โดยตรงต่ออินเทอร์เน็ตสาธารณะ
นอกจากนี้ คุณจะต้องกำหนดค่าเว็บเซิร์ฟเวอร์ของคุณเพื่อป้องกันการเข้าถึง /?author=<number> หากคุณกำลังใช้ Nginx คุณสามารถใช้การกำหนดค่าต่อไปนี้เพื่อป้องกันการแจงนับผู้ใช้ WordPress
RewriteCond %{REQUEST_URI} ^/$ RewriteCond %{QUERY_STRING} ^/?author=([0-9]*) RewriteRule .* - [R=403,L]
หรือหากคุณใช้ Apache HTTP Server คุณอาจใช้การกำหนดค่าต่อไปนี้เพื่อป้องกันการแจงนับผู้ใช้ WordPress
if ( $query_string ~ "author=([0-9]*)" ) { return 403; }
ปิดการใช้งานตัวแก้ไขไฟล์ WordPress
หนึ่งในคุณสมบัติที่อันตรายที่สุดของ WordPress คือความสามารถในการแก้ไขไฟล์จากภายในแดชบอร์ดของ WordPress เอง ไม่ควรมีเหตุผลอันสมควรที่ผู้ใช้คนใดควรทำสิ่งนี้ และแน่นอนว่าไม่ใช่กับแกนหลักของ WordPress หากมีสิ่งใด คุณต้องแน่ใจว่าคุณทราบ แน่ชัด ว่าไฟล์ใดบ้างที่เปลี่ยนแปลงโดยใช้ปลั๊กอินการรักษาความปลอดภัยการตรวจสอบความสมบูรณ์ของไฟล์ (FIM) คุณภาพสูง
หากต้องการรับการแจ้งเตือนการเปลี่ยนแปลงไฟล์ ให้ใช้ปลั๊กอิน Website File Changes Monitor ซึ่งเราพัฒนาขึ้น
การเปลี่ยนแปลงไฟล์ใดๆ ในเว็บไซต์ของคุณควรเกิดขึ้นผ่านการเชื่อมต่อที่ปลอดภัย (เช่น SFTP) หรือควรติดตามในที่เก็บการควบคุมเวอร์ชันและปรับใช้โดยใช้ CI/CD
หากต้องการปิดใช้งานตัวแก้ไขไฟล์ปลั๊กอินและธีมในแดชบอร์ด WordPress เพียงเพิ่มสิ่งต่อไปนี้ในไฟล์ wp-config.php ของคุณ
define('DISALLOW_FILE_EDIT', true );
ปิดใช้งานการจัดการธีมและปลั๊กอิน
แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัยของ WordPress คือการปิดใช้งานการจัดการปลั๊กอินและธีมจากแดชบอร์ด WordPress ให้ใช้เครื่องมือบรรทัดคำสั่ง เช่น wp-cli เพื่อทำการเปลี่ยนแปลงเหล่านี้แทน
เมื่อปิดการใช้งานการเปลี่ยนแปลงธีมและปลั๊กอิน คุณจะลดพื้นผิวการโจมตีของเว็บไซต์ WordPress ลงอย่างมาก ในกรณีนี้ แม้ว่าผู้โจมตีจะละเมิดบัญชีผู้ดูแลระบบได้สำเร็จ พวกเขาก็จะไม่สามารถอัปโหลดปลั๊กอินที่เป็นอันตรายเพื่อเพิ่มการโจมตีนอกเหนือจากการเข้าถึงแดชบอร์ดของ WordPress ได้
ค่าคงที่ DISALLOW_FILE_MODS ที่กำหนดไว้ใน wp-config.php ปิดใช้งานการอัปเดตปลั๊กอินและธีม และการติดตั้งผ่านแดชบอร์ด นอกจากนี้ยังปิดใช้งานการแก้ไขไฟล์ทั้งหมดภายในแดชบอร์ด ดังนั้นจึงลบ Theme Editor และ Plugin Editor
หากต้องการปิดใช้งานการปรับเปลี่ยนธีมและปลั๊กอินในแดชบอร์ด WordPress ให้เพิ่มข้อมูลต่อไปนี้ในไฟล์ wp-config.php ของคุณ
define('DISALLOW_FILE_MODS', true );
เวิร์ดเพรส HTTPS (SSL / TLS)
Transport Layer Security (TLS) เป็นสิ่งจำเป็นอย่างยิ่งสำหรับการรักษาความปลอดภัยของ WordPress ของคุณ ติดตั้งง่ายและฟรี หมายเหตุ: TLS เป็นโปรโตคอลที่แทนที่ Secure Socket Layer, SSL อย่างไรก็ตาม เนื่องจากคำว่า SSL เป็นที่นิยมอย่างมาก หลายคนยังคงเรียก TLS ว่าเป็น SSL
เมื่อคุณเยี่ยมชมเว็บไซต์ของคุณผ่าน HTTPS (HTTP บน TLS) คำขอ HTTP และการตอบสนองจะไม่สามารถสกัดกั้นและสอดแนมได้ หรือผู้โจมตีแก้ไขได้แย่กว่านั้น
แม้ว่า TLS จะเกี่ยวข้องกับเว็บเซิร์ฟเวอร์หรือเครือข่ายการจัดส่งเนื้อหา (CDN) มากกว่าการติดตั้ง WordPress ของคุณ สิ่งสำคัญที่สุดประการหนึ่งของ TLS (WordPress HTTPS) ก็คือการบังคับใช้ มีข้อมูลออนไลน์มากมายเกี่ยวกับวิธีการตั้งค่า WordPress HTTPS (SSL และ TLS)
หากคุณไม่สะดวกที่จะแก้ไขไฟล์การกำหนดค่า และต้องการเปลี่ยนไปใช้ WordPress HTTPS โดยใช้ปลั๊กอิน คุณสามารถใช้ Really Simple SSL หรือ WP Force SSL เป็นปลั๊กอินที่ดีและใช้งานง่าย
ขั้นตอนต่อไปสำหรับ WordPress . ที่ปลอดภัยยิ่งขึ้น
ถ้าคุณมาไกลได้ขนาดนี้ เยี่ยมมาก แต่นั่นไม่ได้หมายความว่ายังไม่มีอะไรต้องทำมากกว่านี้ ต่อไปนี้เป็นรายการจำนวนหนึ่งที่คุณสามารถตรวจสอบเพื่อทำให้เว็บไซต์ WordPress ของคุณแข็งแกร่งยิ่งขึ้น
- ฮาร์เดน PHP เนื่องจาก PHP เป็นองค์ประกอบหลักของเว็บไซต์ WordPress ใดๆ การทำให้ PHP แข็งแกร่งขึ้นเป็นหนึ่งในขั้นตอนถัดไปที่สมเหตุสมผล เราได้เขียนเกี่ยวกับสิ่งนี้อย่างกว้างขวางในการตั้งค่าความปลอดภัย PHP ที่ดีที่สุดสำหรับเว็บไซต์ WordPress
- ใช้ปลั๊กอินความปลอดภัยที่มีชื่อเสียง ปลั๊กอินความปลอดภัยคุณภาพนำเสนอคุณสมบัติความปลอดภัยขั้นสูงที่ไม่รวมอยู่ใน WordPress มีปลั๊กอินความปลอดภัย WordPress อยู่มากมาย อย่างไรก็ตาม อย่าลืมเลือกปลั๊กอินที่มีชื่อเสียงที่ดีและเหมาะสมที่สุดที่มีการสนับสนุนระดับพรีเมียมหรือเชิงพาณิชย์ เช่น ปลั๊กอินความปลอดภัยคุณภาพสูงสำหรับ WordPress
- ทำการตรวจสอบสิทธิ์ของไฟล์ สำหรับเว็บไซต์ WordPress ที่ทำงานบน Linux การอนุญาตไฟล์ที่ไม่ถูกต้องอาจทำให้ผู้ใช้ที่ไม่ได้รับอนุญาตเข้าถึงไฟล์ที่อาจมีความละเอียดอ่อนได้ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ โปรดดูคำแนะนำในการกำหนดค่าการอนุญาตเว็บไซต์ WordPress และเว็บเซิร์ฟเวอร์ที่ปลอดภัย
- ดำเนินการตรวจสอบไฟล์สำรอง ไฟล์สำรองที่ถูกปล่อยให้เข้าถึงได้โดยไม่ได้ตั้งใจอาจทำให้ข้อมูลที่ละเอียดอ่อนรั่วไหล ซึ่งรวมถึงการกำหนดค่าที่มีความลับที่อาจทำให้ผู้โจมตีสามารถควบคุมการติดตั้ง WordPress ทั้งหมดได้
- ทำให้เว็บเซิร์ฟเวอร์ของคุณแข็งแกร่งขึ้น
- Harden MySQL
- เพิ่มส่วนหัวความปลอดภัย HTTP ที่จำเป็น
- ตรวจสอบให้แน่ใจว่าคุณมีระบบสำรองข้อมูล WordPress ที่ใช้งานได้
- ใช้บริการป้องกัน DDoS
- ใช้นโยบายการรักษาความปลอดภัยของเนื้อหา
- จัดการไฟล์สำรองและไฟล์ที่ไม่ได้อ้างอิงที่ถูกเปิดเผย
บทสรุป – นี่เป็นเพียงก้าวแรกของเส้นทางการรักษาความปลอดภัย WordPress
ยินดีด้วย! หากคุณปฏิบัติตามคำแนะนำข้างต้นทั้งหมดและปฏิบัติตามแนวทางปฏิบัติด้านความปลอดภัยที่แนะนำทั้งหมด เว็บไซต์ WordPress ของคุณจะปลอดภัย อย่างไรก็ตาม ความปลอดภัยของ WordPress ไม่ใช่การแก้ไขเพียงครั้งเดียว แต่เป็นกระบวนการที่มีการพัฒนาอยู่ตลอดเวลา มีความแตกต่างอย่างมากระหว่างการทำให้เว็บไซต์ WordPress แข็งแกร่ง (สถานะครั้งเดียว) กับการรักษาความปลอดภัยให้นานหลายปี
การชุบแข็งเป็นเพียงหนึ่งในสี่ขั้นตอนในกระบวนการรักษาความปลอดภัยของ WordPress (วงล้อความปลอดภัยของ WordPress) สำหรับเว็บไซต์ WordPress ที่ปลอดภัยตลอดทั้งปี คุณต้องปฏิบัติตามกระบวนการความปลอดภัยของ WordPress แบบวนซ้ำ เช่น การทดสอบ > การทำให้แข็ง > การตรวจสอบ > การปรับปรุง คุณต้องทดสอบและตรวจสอบสถานะความปลอดภัยของเว็บไซต์ WordPress ของคุณอย่างต่อเนื่อง เสริมความแข็งแกร่งให้กับซอฟต์แวร์ ตรวจสอบระบบ และปรับปรุงการตั้งค่าของคุณตามสิ่งที่คุณเห็นและเรียนรู้ ตัวอย่างเช่น:
- เครื่องมือเช่น WPScan สามารถช่วยทดสอบระดับความปลอดภัยของเว็บไซต์ WordPress ของคุณได้
- ไฟร์วอลล์ WordPress สามารถปกป้องเว็บไซต์ WordPress ของคุณจากการแฮ็คที่เป็นอันตราย
- บันทึกกิจกรรมของ WordPress สามารถช่วยให้คุณไปได้ไกล โดยการเก็บบันทึกการเปลี่ยนแปลงทั้งหมดที่เกิดขึ้นบนเว็บไซต์ของคุณ คุณสามารถปรับปรุงความรับผิดชอบของผู้ใช้ รู้ว่าผู้ใช้แต่ละคนกำลังทำอะไร และคอยจับตาดูกิจกรรมภายใต้ประทุนทั้งหมด
- เครื่องมือต่างๆ เช่น ปลั๊กอินความปลอดภัยและการจัดการ WordPress ของเราสามารถช่วยให้คุณมั่นใจในความปลอดภัยของรหัสผ่าน เพิ่มความแข็งแกร่งให้กับกระบวนการรักษาความปลอดภัยของ WordPress รับการแจ้งเตือนเมื่อไฟล์มีการเปลี่ยนแปลง และอื่นๆ อีกมากมาย
คุณมีเครื่องมือที่เหมาะสมในการทำให้ไซต์ของคุณปลอดภัย แม้ว่าคุณจะใช้งานเว็บไซต์ WordPress ขนาดเล็ก ให้ใช้เวลาค่อยๆ อ่านคู่มือนี้ ตรวจสอบให้แน่ใจว่าคุณไม่ได้ลงเอยด้วยการทำงานเพื่อสร้างเว็บไซต์ที่ยอดเยี่ยม เพียงเพื่อให้ถูกโจมตีโดยการโจมตีที่กำหนดเป้าหมายโดย WordPress
ไม่มีการรักษาความปลอดภัยที่มีประสิทธิภาพ 100% อย่างไรก็ตาม คุณกำลังทำให้มันยากขึ้นมากสำหรับผู้โจมตีที่จะตั้งหลักและโจมตีเว็บไซต์ WordPress ของคุณได้สำเร็จโดยใช้เทคนิคการชุบแข็งต่างๆ ที่กล่าวถึงในคู่มือนี้ จำไว้ว่าเมื่อผู้โจมตีกำหนดเป้าหมายไปยังเหยื่อรายต่อไป คุณไม่จำเป็นต้องฉลาดกว่าพวกเขา คุณต้องปลอดภัยกว่าเว็บไซต์ที่มีช่องโหว่ถัดไปเท่านั้น!