การเสริมความปลอดภัยโครงสร้างโฟลเดอร์ WordPress ที่ดีที่สุดสำหรับการปิดการเข้าถึงโฟลเดอร์ "wp-includes" คือการป้องกันไม่ให้ไฟล์ PHP ภายในโฟลเดอร์นี้ถูกเรียกใช้งานจากภายนอก รวมถึงปิดการแสดงรายการโฟลเดอร์ ไม่ใช่การบล็อกโฟลเดอร์ทั้งหมดแบบมองไม่เห็น เพราะ wp-includes เป็นที่เก็บไฟล์ JavaScript, CSS และไฟล์สแตติกต่างๆ ที่จำเป็นสำหรับการทำงานของ WordPress หากบล็อกโฟลเดอร์ทั้งหมด อาจทำให้ธีม ตัวแก้ไข หรือฟังก์ชันของปลั๊กอินเสียหาย วิธีที่ถูกต้องคือ ถ้าใช้ Apache ให้ตั้งกฎใน .htaccess ถ้าใช้ Nginx ให้ใช้กฎ location ใน server block เพื่อป้องกันการเข้าถึงไฟล์ PHP โดยตรง จากนั้นทดสอบด้วยโค้ดตอบกลับ 403/404 และตรวจสอบหน้าสำคัญต่างๆ เพื่อยืนยันความถูกต้อง
ข้อผิดพลาดที่พบบ่อยในการรักษาความปลอดภัย WordPress คือการพึ่งพาแค่รหัสผ่านที่แข็งแรงหรือปลั๊กอินรักษาความปลอดภัยเท่านั้น แต่ผู้โจมตีมักจะสแกนหาโฟลเดอร์ที่มีไฟล์หลักเก่า ปลั๊กอินเวอร์ชันล้าสมัย สิทธิ์ไฟล์ผิดพลาด หรือเปิดให้แสดงรายการโฟลเดอร์ได้ โดยโฟลเดอร์ wp-includes ก็เป็นเป้าหมายหนึ่ง ในบทความนี้ คุณจะได้เรียนรู้ขั้นตอนปฏิบัติจริงในการจำกัดการเข้าถึง wp-includes ว่ากฎใดอาจทำให้เว็บไซต์เสียหาย ตัวอย่างการตั้งค่าบน Apache และ Nginx วิธีทดสอบ และรายการตรวจสอบการดูแลรักษา เพื่อให้เว็บไซต์ WordPress ของคุณปลอดภัยยิ่งขึ้น นอกจากนี้ยังแนะนำ โฮสติ้ง WordPress และตัวเลือก ใบรับรอง SSL เพื่อเสริมชั้นความปลอดภัยอีกด้วย
โฟลเดอร์ wp-includes คืออะไร และทำไมต้องป้องกัน?
wp-includes เป็นหนึ่งในโฟลเดอร์หลักของ WordPress ที่เก็บไลบรารีพื้นฐานของระบบ เช่น ระบบธีม ตัวแก้ไขบล็อก REST API ส่วนประกอบต่างๆ การจัดการไฟล์มีเดีย คลาส ฟังก์ชัน และไฟล์ JavaScript หลายชนิด สรุปง่ายๆ ว่า wp-includes เปรียบเสมือนห้องเครื่องของ WordPress ที่ผู้ใช้งานทั่วไปไม่ควรเข้าถึงโดยตรง
ผู้เยี่ยมชมทั่วไปไม่จำเป็นต้องเปิดที่อยู่ site.com/wp-includes/ อย่างไรก็ตาม ไฟล์สแตติกบางตัวจากโฟลเดอร์นี้ เช่น สคริปต์เริ่มต้นของ WordPress, สคริปต์อิโมจิ หรือส่วนประกอบของตัวแก้ไข อาจถูกโหลดจากโฟลเดอร์นี้ได้ ดังนั้นเวลาป้องกันความปลอดภัย ต้องตั้งเป้าหมายให้ชัดเจน คือ ปิดกั้นการเข้าถึงไฟล์ PHP โดยตรงโดยไม่กระทบต่อการโหลดไฟล์สแตติก
แนวคิดนี้เป็นหัวใจของการเสริมความปลอดภัยโครงสร้างโฟลเดอร์ WordPress แบบมืออาชีพ การบล็อกโฟลเดอร์แบบสุ่มอาจดูปลอดภัยในระยะสั้น แต่จะทำให้เกิดปัญหา เช่น หน้าเว็บขาวเปล่า แผงควบคุมเสียหาย ตัวแก้ไขบล็อกไม่ทำงาน หรือธีมแสดงผลผิดพลาด เป้าหมายคือปกป้องไฟล์ที่จำเป็นโดยลดช่องทางโจมตีลงให้มากที่สุด
การปิดการเข้าถึง wp-includes ช่วยอะไร?
การป้องกันไม่ให้ไฟล์ PHP ในโฟลเดอร์ wp-includes ถูกเรียกใช้งานโดยตรงผ่านเว็บไม่ได้หมายความว่าจะหยุดการโจมตีได้ทั้งหมด แต่จะช่วยลดช่องทางโจมตีได้อย่างมีนัยสำคัญ โดยเฉพาะในกรณีที่เว็บไซต์ติดมัลแวร์ ผู้โจมตีมักจะพยายามอัปโหลดหรือเรียกไฟล์ PHP อันตรายในโฟลเดอร์ที่เปิดเผย การห้ามเรียกใช้ PHP ใน wp-includes จึงเป็นเกราะป้องกันชั้นเสริม
ข้อดีของมาตรการนี้ได้แก่:
- จำกัดการเรียกใช้ไฟล์ PHP หลักผ่าน URL โดยตรง
- ช่วยปิดกั้นการแสดงรายการไฟล์หากเปิดใช้งานอยู่
- ลดการรั่วไหลของข้อมูลจากการสแกนอัตโนมัติ
- ให้การป้องกันระดับเซิร์ฟเวอร์ แม้ไม่มีปลั๊กอินเสริม
- เสริมระบบความปลอดภัยหลายชั้นร่วมกับ WAF, SSL, PHP เวอร์ชันล่าสุด และสิทธิ์ไฟล์ที่เหมาะสม
สิ่งสำคัญคือ มาตรการนี้เป็นเพียงชั้นความปลอดภัยหนึ่งเท่านั้น หากใช้ปลั๊กอินเก่าหรือรหัสผ่านอ่อนแอ หรือบัญชี FTP ถูกแฮก กฎนี้เพียงอย่างเดียวไม่เพียงพอ ความปลอดภัยที่แท้จริงต้องผสมผสานโครงสร้างโฮสติ้ง แอปพลิเคชัน การจัดการผู้ใช้ และการดูแลรักษาอย่างสม่ำเสมอ สำหรับฐานความปลอดภัยที่มั่นคง สามารถศึกษาข้อมูลเพิ่มเติมได้จาก โฮสติ้งเว็บที่ปลอดภัย และเสริมความปลอดภัยโดเมนด้วย ความปลอดภัยของโดเมน
ข้อผิดพลาดที่พบบ่อยเมื่อปิดการเข้าถึง wp-includes
บล็อกโฟลเดอร์ทั้งหมด
ข้อผิดพลาดที่พบบ่อยที่สุดคือการบล็อกคำร้องขอ HTTP ทั้งหมดที่เข้าถึงโฟลเดอร์ wp-includes ด้วยรหัส 403 วิธีนี้ดูเหมือนจะดีในเชิงความปลอดภัย แต่ WordPress โหลดไฟล์สแตติกบางส่วนจากโฟลเดอร์นี้ ทำให้เกิดปัญหาเช่น ตัวแก้ไขบล็อกไม่สามารถเปิดได้, ไฟล์ JavaScript บางตัวโหลดไม่ขึ้น หรือการแสดงผลหน้าเว็บผิดเพี้ยน
นำกฎไปใช้บนเว็บไซต์จริงโดยไม่ทดสอบ
เพียงแค่ผิดพลาดเล็กน้อยใน .htaccess หรือการตั้งค่า Nginx อาจทำให้เกิดข้อผิดพลาด 500 Internal Server Error โดยเฉพาะเว็บไซต์ที่มีคนใช้งานจำนวนมาก ควรสำรองไฟล์ก่อนและถ้าเป็นไปได้ทดสอบในสภาพแวดล้อม staging ก่อนนำขึ้นใช้งานจริง หากใช้ Hostragons สามารถใช้ฟีเจอร์ staging หรือสำรองข้อมูลได้ การสำรองข้อมูลการโฮสต์เว็บไซต์
พึ่งพาปลั๊กอินความปลอดภัยอย่างเดียว
ปลั๊กอินความปลอดภัยช่วยได้มาก แต่กฎที่ระดับเซิร์ฟเวอร์จะทำงานก่อนตั้งแต่คำร้องยังไม่ถึง PHP ช่วยลดภาระของเซิร์ฟเวอร์และป้องกันการโจมตีได้รวดเร็วกว่า ดังนั้นแม้ใช้ปลั๊กอินก็ไม่ควรละเลยการตั้งค่าระดับเซิร์ฟเวอร์
รายการตรวจสอบก่อนใช้งาน
ก่อนจำกัดการเข้าถึง wp-includes ควรเตรียมตัวดังนี้ เพื่อลดความเสี่ยงการหยุดชะงักโดยเฉพาะเว็บไซต์ที่ใช้งานจริง:
- สำรองไฟล์ .htaccess หรือไฟล์ตั้งค่า Nginx ปัจจุบัน
- อัปเดต WordPress, ธีม และปลั๊กอินให้เป็นเวอร์ชันล่าสุด
- ตรวจสอบให้แน่ใจว่าใช้ PHP เวอร์ชันที่ปลอดภัยและยังได้รับการสนับสนุน
- ตั้งค่าไฟล์และโฟลเดอร์ให้ถูกต้อง เช่น โฟลเดอร์เป็น 755 ไฟล์เป็น 644
- อย่าเปิดสิทธิ์เขียนไฟล์สำคัญ เช่น wp-config.php หรือ .htaccess โดยไม่จำเป็น
- ถ้าใช้แคช CDN หรือปลั๊กอินความปลอดภัย ให้ล้างแคชหลังเปลี่ยนแปลง
- สร้างรายการตรวจสอบทดสอบฟังก์ชันสำคัญ เช่น แผงควบคุม หน้าแรก บทความ ฟอร์มติดต่อ และหน้าชำระเงิน
ขั้นตอนนี้ใช้เวลาประมาณ 10-15 นาที แต่ช่วยป้องกันปัญหา downtime ที่อาจกินเวลาหลายชั่วโมง ถ้าเป็นเว็บไซต์องค์กร ควรเปลี่ยนแปลงช่วงเวลาที่มีผู้ใช้น้อย
วิธีปิดการเข้าถึงไฟล์ PHP ใน wp-includes บนเซิร์ฟเวอร์ Apache ด้วย .htaccess
สำหรับโฮสติ้งที่ใช้ Apache วิธีที่นิยมคือแก้ไขไฟล์ .htaccess ในโฟลเดอร์หลักของ WordPress โดยเพิ่มกฎที่เหมาะสมก่อนเริ่มทำ ควรดาวน์โหลดไฟล์สำรองเก็บไว้ก่อน หรือใช้เครื่องมือจัดการไฟล์บนแผงควบคุมโฮสติ้ง
ตัวอย่างกฎ .htaccess ที่แนะนำ
ตัวอย่างนี้เน้นปิดการเข้าถึงไฟล์ PHP ใน wp-includes โดยยังคงอนุญาตให้ไฟล์สแตติกทำงาน:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^wp-includes/.*[.]php$ - [F,L]
</IfModule>
กฎนี้หมายความว่า ถ้าคำร้องขอ URL เริ่มด้วย wp-includes และลงท้ายด้วย .php จะถูกบล็อกทันที ส่งผลให้ไฟล์ PHP ในโฟลเดอร์นี้ไม่ถูกเรียกจากเบราว์เซอร์ แต่ไฟล์ .js, .css, .png, .svg และไฟล์สแตติกอื่นๆ ยังคงเข้าถึงได้ตามปกติ ซึ่งช่วยให้ส่วนหน้าและแผงควบคุมของ WordPress ทำงานได้อย่างปลอดภัย
ปิดการแสดงรายการโฟลเดอร์
อีกจุดสำคัญคือปิดการเปิดเผยรายการไฟล์ในโฟลเดอร์ หากเปิดใช้งานอยู่ ผู้ใช้สามารถเห็นรายชื่อไฟล์ในโฟลเดอร์ได้ การเพิ่มบรรทัดนี้ในไฟล์ .htaccess จะช่วยปิดการแสดงรายการ:
Options -Indexes
โดยปกติในโฮสติ้งสมัยใหม่จะปิดเอาไว้แล้ว แต่ควรตรวจสอบให้แน่ใจเพื่อความปลอดภัยสูงสุด
ทดสอบหลังเปลี่ยนแปลง
หลังเพิ่มกฎแล้ว ให้ทำการทดสอบดังนี้:
- เปิด siteของคุณ/wp-includes/ ควรไม่แสดงรายการไฟล์
- ลองเรียกไฟล์ PHP ที่รู้จักใน wp-includes โดยตรง เช่น siteของคุณ/wp-includes/somefile.php ควรได้รับรหัสตอบกลับ 403 หรือ 404
- ตรวจสอบหน้าแรก บทความ และแผงควบคุมว่าทำงานถูกต้อง
- ใช้ Developer Tools ในเบราว์เซอร์ดูแท็บ Console และ Network ว่ามีข้อผิดพลาด 403/404 หรือไม่
- ถ้าใช้แคช CDN หรือปลั๊กอินแคช ให้เคลียร์แคชหลังเปลี่ยนแปลง
ถ้าพบข้อผิดพลาด 500 ให้รีบลบกฎออกและคืนค่า .htaccess สำรองทันที
วิธีปิดการเข้าถึงไฟล์ PHP ใน wp-includes บนเซิร์ฟเวอร์ Nginx
สำหรับเซิร์ฟเวอร์ที่ใช้ Nginx เช่น VPS หรือ Dedicated Server ไฟล์ .htaccess ใช้ไม่ได้ ต้องเพิ่มกฎในไฟล์ตั้งค่าเว็บไซต์ ซึ่งอยู่ใน server block จำเป็นต้องมีสิทธิ์เข้าถึงผ่าน SSH และความรู้ในการแก้ไขไฟล์ หากไม่มั่นใจควรขอความช่วยเหลือจากทีมสนับสนุนโฮสติ้ง
ตัวอย่างกฎ location สำหรับ Nginx
ใช้กฎตามนี้เพื่อบล็อกไฟล์ PHP ใน wp-includes:
location ~* ^/wp-includes/.*[.]php$ {
deny all;
}
หลังเพิ่มกฎแล้ว ควรทดสอบการตั้งค่าด้วยคำสั่ง:
nginx -t
ถ้าผ่าน ให้รีโหลด Nginx ด้วยคำสั่ง:
systemctl reload nginx
คำสั่ง reload จะไม่ตัดการเชื่อมต่อผู้ใช้งานปัจจุบัน ต่างจาก restart ทำให้เว็บไซต์ยังใช้งานได้ต่อเนื่อง แนะนำให้ทำช่วงเวลาที่มีผู้ใช้น้อย
ข้อควรระวังเมื่อตั้งค่า Nginx
- ตรวจสอบให้แน่ใจว่าเพิ่มกฎใน server block ที่ถูกต้อง เพราะอาจมีหลายไซต์ในเซิร์ฟเวอร์เดียวกัน
- ถ้าใช้ CDN หรือ reverse proxy ให้ล้างแคช CDN ก่อนทดสอบ
- ตรวจสอบการตั้งค่า PHP-FPM ว่ารองรับเฉพาะไฟล์ที่จำเป็น
- ตรวจสอบ log เช่น access.log และ error.log เพื่อจับข้อผิดพลาดจากกฎที่ตั้ง
ลำดับของกฎใน Nginx สำคัญ หากตั้งไม่ถูกต้องอาจทำให้เกิดผลลัพธ์ไม่คาดคิด ต้องมั่นใจว่าไม่ทับซ้อนกับกฎ permalink หรือบล็อก PHP อื่นๆ
เปรียบเทียบวิธีการต่างๆ
ตารางด้านล่างสรุปวิธีหลักๆ ในการจำกัดการเข้าถึง wp-includes:
| วิธีการ | สภาพแวดล้อมที่เหมาะสม | ข้อดี | ข้อควรระวัง |
|---|---|---|---|
| กฎ .htaccess | Apache และ โฮสติ้ง LiteSpeed | ติดตั้งง่าย เหมาะกับโฮสติ้งแชร์ | ผิดพลาดในการเขียนโค้ดทำให้เกิด error 500 ได้ |
| กฎ location Nginx | VPS, Dedicated, เซิร์ฟเวอร์จัดการเอง | ประสิทธิภาพสูง ป้องกันที่ระดับเซิร์ฟเวอร์ | ต้องมีความรู้ด้าน SSH และแก้ไข config |
| ปลั๊กอินความปลอดภัย | ผู้ใช้ที่มีทักษะจำกัด | จัดการง่ายผ่านหน้าจอ | บางครั้งไม่ครอบคลุมการป้องกันระดับเซิร์ฟเวอร์ |
| WAF และ CDN | เว็บไซต์ที่มีทราฟฟิกสูง หรือถูกโจมตีบ่อย | กรองคำขอที่ไม่พึงประสงค์ได้ตั้งแต่ต้นทาง | ถ้ากำหนดผิด อาจบล็อกผู้ใช้จริง |
| การตั้งสิทธิ์ไฟล์ | ทุกเว็บไซต์ WordPress | เป็นมาตรฐานความปลอดภัยพื้นฐาน | ไม่สามารถปิดการเข้าถึง URL ได้โดยตรง |
ในทางปฏิบัติ การรวมหลายวิธีเข้าด้วยกันจะให้ผลลัพธ์ดีที่สุด เช่น บนโฮสติ้ง Apache ใช้กฎ .htaccess ร่วมกับการตั้งสิทธิ์ไฟล์ที่เหมาะสม อัปเดต WordPress ล่าสุด ใช้ SSL และสำรองข้อมูลสม่ำเสมอ อีกทั้งเลือกโฮสติ้งที่มีระบบความปลอดภัยและแยกส่วนอย่างดีอย่าง โฮสติ้งธุรกิจ จะช่วยให้เว็บไซต์มีความมั่นคงสูง
การตั้งค่าสิทธิ์ไฟล์และเจ้าของไฟล์
การปิดการเข้าถึง wp-includes จะไม่สมบูรณ์ถ้าสิทธิ์ไฟล์ไม่ถูกต้อง โดยทั่วไป WordPress แนะนำให้โฟลเดอร์เป็น 755 และไฟล์เป็น 644 เพื่อให้เว็บเซิร์ฟเวอร์อ่านไฟล์ได้ แต่ลดสิทธิ์เขียนที่ไม่จำเป็น บางโฮสติ้งอาจมีการตั้งค่าผู้ใช้และกลุ่มแตกต่างกัน ควรตรวจสอบคำแนะนำของแผงควบคุมโฮสติ้งด้วย
โดยเฉพาะอย่างยิ่ง หลีกเลี่ยงสิทธิ์ 777 เพราะเปิดให้ทุกคนเขียนไฟล์ได้ ซึ่งเสี่ยงต่อการถูกอัปโหลดไฟล์อันตราย แม้ในโฟลเดอร์ที่ต้องเขียนได้ เช่น wp-content/uploads ก็ควรปิดการรันไฟล์ PHP ในโฟลเดอร์นั้น ส่วน wp-includes ปกติไม่ควรเปิดให้เขียนโดยผู้ใช้ทั่วไป นอกจากการอัปเดตของระบบ
ในการตรวจสอบความปลอดภัย ควรดูสิทธิ์ดังนี้:
- โฟลเดอร์ wp-includes: 755
- ไฟล์ PHP ใน wp-includes: 644
- ไฟล์ wp-config.php: ถ้าเป็นไปได้ 600 หรือจำกัดมากขึ้นตามระบบโฮสติ้ง
- ไฟล์ .htaccess: ปกติ 644 และไม่เปิดสิทธิ์เขียนโดยไม่จำเป็น
แต่ละเซิร์ฟเวอร์อาจมีพฤติกรรมต่างกัน การตั้งผิดอาจทำให้เว็บไซต์อัปเดตไม่ได้หรืออ่านไฟล์ไม่ถูกต้อง ควรตรวจสอบสุขภาพเว็บไซต์และอ่าน log error เป็นประจำ
ปลั๊กอินความปลอดภัยช่วยตั้งค่าข้อนี้ไหม?
ปลั๊กอินอย่าง Wordfence หรือ iThemes Security สามารถแนะนำกฎเสริมความปลอดภัยบางอย่างแบบอัตโนมัติได้ เช่น ป้องกันการโจมตี brute force, ตรวจจับการเปลี่ยนแปลงไฟล์ และสแกนมัลแวร์ แต่การปิดการเข้าถึง wp-includes แบบสมบูรณ์ต้องตรวจสอบว่าแต่ละปลั๊กอินตั้งกฎในระดับเซิร์ฟเวอร์หรือไม่
บางปลั๊กอินจะเพิ่มกฎในไฟล์ .htaccess ให้อัตโนมัติ บางปลั๊กอินทำงานแค่ในระดับแอปพลิเคชัน ซึ่งจะทำงานหลังจากคำร้องถูกประมวลผลแล้ว ทำให้ไม่เร็วและไม่ป้องกันได้ตั้งแต่ต้น การใช้ทั้งปลั๊กอินและการตั้งค่าระดับเซิร์ฟเวอร์ร่วมกันจึงเป็นทางเลือกที่ดีที่สุด
ถ้าใช้ปลั๊กอินควรตรวจสอบ:
- ปลั๊กอินเพิ่มกฎ .htaccess หรือกฎ Nginx หรือไม่
- ไม่ให้กฎซ้ำซ้อนกันจนเกิดปัญหา
- หลังอัปเดตปลั๊กอิน ตรวจสอบว่าการตั้งค่าความปลอดภัยยังเหมือนเดิม
- วัดผลกระทบต่อประสิทธิภาพ เช่น การใช้แคชและทรัพยากรเซิร์ฟเวอร์
ไม่แนะนำให้ติดตั้งปลั๊กอินความปลอดภัยหลายตัวพร้อมกัน เพราะอาจเกิดความขัดแย้ง เช่น firewall, login protection และ rewrite rules ที่ซ้ำซ้อน ทำให้ระบบช้าหรือบล็อกผู้ใช้ผิด
วิธีทดสอบการป้องกัน wp-includes แบบใช้งานจริง
เพื่อให้มั่นใจว่าการตั้งค่าป้องกัน wp-includes สำเร็จ ไม่ใช่แค่เว็บไซต์เปิดได้ปกติ ให้ทำตามขั้นตอนทดสอบ 7 ข้อต่อไปนี้ที่เหมาะกับเว็บไซต์ WordPress ทุกขนาด ตั้งแต่ธุรกิจเล็กจนถึงอีคอมเมิร์ซ:
- 1. เปิดหน้าแรกในโหมดไม่ระบุตัวตน (incognito) และตรวจสอบว่าการแสดงผลไม่ผิดปกติ
- 2. เข้าไปดูบทความ หน้าแสดงหมวดหมู่ และหน้าผลการค้นหา
- 3. ล็อกอินเข้าสู่แผงควบคุม wp-admin และเปิดตัวแก้ไขบล็อก รวมทั้งคลังสื่อ
- 4. เปิด Developer Tools ในเบราว์เซอร์ ดูแท็บ Console ว่ามีข้อผิดพลาดหรือไม่
- 5. ตรวจสอบในแท็บ Network ว่าไฟล์สแตติกจาก wp-includes ไม่ถูกบล็อกโดยไม่จำเป็น
- 6. ลองเรียกไฟล์ PHP ใน wp-includes โดยตรง ควรได้รับรหัสตอบกลับ 403 หรือ 404
- 7. ตรวจสอบ log ข้อผิดพลาดของเซิร์ฟเวอร์ว่ามี error ใหม่หรือซ้ำซ้อนหรือไม่
ขั้นตอนนี้ใช้เวลาประมาณ 5 นาที ช่วยจับความผิดพลาดได้ทันที โดยเฉพาะเว็บไซต์ที่มีระบบ WooCommerce หรือระบบชำระเงิน ควรทดสอบหน้าตะกร้าสินค้า ชำระเงิน และบัญชีผู้ใช้ด้วย เพราะแม้ข้อผิดพลาดเล็กน้อยก็ส่งผลต่อยอดขายได้
มาตรการเสริมความปลอดภัยโครงสร้างโฟลเดอร์ WordPress อื่นๆ
การป้องกัน wp-includes เป็นจุดเริ่มต้นที่ดี แต่ความปลอดภัย WordPress ต้องมองแบบองค์รวม มาตรการเสริมด้านล่างช่วยลดช่องทางโจมตีได้มากขึ้น:
- อย่าพยายามซ่อนเวอร์ชัน WordPress แต่ควรอัปเดตให้ทันสมัยเสมอ
- ลบธีมและปลั๊กอินที่ไม่ได้ใช้งานออกให้หมด
- เปลี่ยนชื่อผู้ใช้แอดมินให้เดายาก
- เปิดใช้งานการยืนยันตัวตนสองขั้นตอน (2FA)
- ถ้าไม่ใช้ XML-RPC ให้ปิดการใช้งาน
- ตั้งค่า rate limit หรือการยืนยันเพิ่มเติมสำหรับ wp-login.php
- ตั้งระบบสำรองข้อมูลอัตโนมัติพร้อมทดสอบกู้คืน
- ใช้ HTTPS ทั้งเว็บไซต์ โดยเพิ่ม SSL เพื่อป้องกันข้อมูลรั่วไหล
SSL ไม่ได้ปิดการเข้าถึง wp-includes โดยตรง แต่ช่วยปกป้องการรับส่งข้อมูลระหว่างผู้ใช้กับเว็บเซิร์ฟเวอร์ จึงเป็นชั้นความปลอดภัยพื้นฐานที่แนะนำให้ใช้เสมอ ซื้อใบรับรอง SSL และ การติดตั้ง SSL ฟรี สามารถช่วยเริ่มต้นได้ง่าย
เมื่อไหร่ควรขอความช่วยเหลือจากมืออาชีพ?
การเพิ่มกฎ .htaccess บนโฮสติ้ง Apache ธรรมดาเป็นเรื่องที่ผู้ใช้ส่วนใหญ่จัดการได้ แต่ถ้าใช้ Nginx, มีเว็บไซต์ WordPress หลายไซต์ในเซิร์ฟเวอร์เดียวกัน, มีร้านค้า WooCommerce, เว็บไซต์ข่าวที่มีทราฟฟิกสูง หรือพอร์ทัลองค์กร ควรขอคำปรึกษาจากผู้เชี่ยวชาญ เพราะกฎความปลอดภัยต้องถูกต้องทั้งทางเทคนิคและด้านความต่อเนื่องของธุรกิจ
สถานการณ์ที่ควรขอความช่วยเหลือ:
- เซิร์ฟเวอร์มี WordPress หลายเว็บไซต์
- ใช้ร่วมกับ Nginx, Varnish, CDN และ WAF
- หลังเปลี่ยนแปลงเกิดข้อผิดพลาด 403, 404 หรือ 500 เพิ่มขึ้น
- เคยโดนมัลแวร์หรือแฮกมาก่อน
- เว็บไซต์มีระบบชำระเงิน, สมาชิก หรือจัดการข้อมูลส่วนบุคคล
โครงสร้างโฮสติ้งที่ปลอดภัย การแยกส่วนที่เหมาะสม การสำรองข้อมูลสม่ำเสมอ และการสนับสนุนที่เชื่อถือได้ เป็นส่วนสำคัญที่ช่วยรักษาความปลอดภัย WordPress อย่างแท้จริง เมื่อตัดสินใจเลือกโฮสติ้ง ให้พิจารณาไม่เพียงแค่พื้นที่เก็บข้อมูล แต่รวมถึงระบบสำรองข้อมูล, ไฟร์วอลล์, รองรับ PHP เวอร์ชันล่าสุด, การจัดการ SSL และคุณภาพการสนับสนุนด้วย แพ็คเกจโฮสติง Hostragons และ การย้ายเว็บไซต์ WordPress เป็นแหล่งข้อมูลที่แนะนำสำหรับการตัดสินใจ
สรุป
วิธีปิดการเข้าถึงโฟลเดอร์ wp-includes อย่างถูกต้องในแง่ความปลอดภัยโครงสร้าง WordPress คือไม่ใช่บล็อกโฟลเดอร์ทั้งหมด แต่ปิดกั้นการเข้าถึงไฟล์ PHP โดยตรง และปิดการแสดงรายการโฟลเดอร์ โดยใช้กฎ .htaccess บน Apache หรือ location บน Nginx ซึ่งทำได้รวดเร็วและปลอดภัย แต่อย่าลืมสำรองข้อมูลก่อนทุกครั้ง และทดสอบการทำงานของแผงควบคุมกับส่วนหน้าของเว็บไซต์อย่างละเอียด
สรุปสั้นๆ คือ อย่าบล็อกไฟล์สแตติก, จำกัดการเข้าถึง PHP, ปิดการแสดงรายการโฟลเดอร์, ตรวจสอบสิทธิ์ไฟล์ และอัปเดตเว็บไซต์เป็นประจำ เพื่อสร้างพื้นฐาน WordPress ที่ปลอดภัยและบริหารจัดการง่าย คุณสามารถศึกษาบริการโฮสติ้ง โดเมน และ SSL จาก Hostragons เพื่อเลือกโซลูชั่นที่เหมาะสม พร้อมรับคำแนะนำเพิ่มเติมได้
คำถามที่พบบ่อย
การบล็อกโฟลเดอร์ wp-includes ทั้งหมดปลอดภัยไหม?
โดยทั่วไปไม่แนะนำ เพราะใน wp-includes มีไฟล์ JavaScript, CSS และไฟล์สแตติกที่ WordPress ต้องใช้ การบล็อกทั้งหมดอาจทำให้เว็บไซต์ผิดปกติ วิธีที่ปลอดภัยคือบล็อกเฉพาะไฟล์ PHP ที่อยู่ในโฟลเดอร์นี้
ถ้าเพิ่มกฎ .htaccess แล้วเว็บไซต์ขึ้น error 500 ควรทำอย่างไร?
ให้ลบกฎล่าสุดที่เพิ่มออก หรือคืนค่าไฟล์ .htaccess ที่สำรองไว้ จากนั้นตรวจสอบไวยากรณ์ของกฎ หากยังมีปัญหาให้ตรวจสอบ log ของโฮสติ้ง หรือขอความช่วยเหลือจากฝ่ายสนับสนุน
บนเซิร์ฟเวอร์ Nginx ใช้ .htaccess ได้ไหม?
ไม่ได้ .htaccess ใช้ได้เฉพาะ Apache และ LiteSpeed เท่านั้น บน Nginx ต้องเพิ่มกฎใน server block ผ่านไฟล์ config และทดสอบด้วยคำสั่ง nginx -t ก่อนรีโหลดเซิร์ฟเวอร์
การปิดการเข้าถึง wp-includes จะทำให้เว็บปลอดภัย 100% ไหม?
ไม่ใช่ การปิดการเข้าถึงไฟล์ PHP ใน wp-includes เป็นชั้นความปลอดภัยชั้นหนึ่งเท่านั้น ต้องมีการอัปเดตสม่ำเสมอ ใช้รหัสผ่านแข็งแรง เปิด 2FA ใช้ SSL สำรองข้อมูล และตั้งสิทธิ์ไฟล์ถูกต้องร่วมกัน
ถ้าใช้ปลั๊กอินรักษาความปลอดภัย จำเป็นต้องเพิ่มกฎปิดการเข้าถึง wp-includes อีกไหม?
ขึ้นอยู่กับว่าปลั๊กอินนั้นเพิ่มกฎระดับเซิร์ฟเวอร์หรือไม่ บางปลั๊กอินเพิ่มกฎใน .htaccess ให้อัตโนมัติ บางตัวทำงานแค่ในระดับแอปพลิเคชัน การตั้งค่าระดับเซิร์ฟเวอร์ร่วมด้วยจึงเป็นตัวเลือกที่แข็งแรงกว่าและไม่ขัดแย้งกับปลั๊กอิน