วิธีทำให้เว็บไซต์ WordPress ปลอดภัยแบบมืออาชีพ

wordpress security

ทำไมเราต้องทำให้ WordPress ปลอดภัย เพราะถ้าเว็บไซต์เราพังจะกระทบกับธุรกิจ ซึ่งความเสียหายมากน้อยแล้วแต่มูลค่าธุรกิจของแต่ละคน

การทำให้ WordPress ปลอดภัยไม่ได้ขึ้นอยู่กับ Plugin เพียงตัวเดียวครับ แต่มันคือ “การป้องกันแบบเชิงลึก” (Defense in Depth) เปรียบเหมือนการสร้างปราสาทที่ไม่ใช่แค่มีประตูหนา แต่ต้องมีทั้งคูเมือง กำแพงเมือง และยามเฝ้าตู้เซฟด้านใน

การรักษาความปลอดภัยที่ดีที่สุดคือ แนวคิดแบบ Layered หรือหลายชั้น (Defense-in-Depth) โดยเริ่มจากระดับที่ไกลที่สุด (Domain Name) ไปจนถึงระดับแอปพลิเคชัน (WordPress เอง) แม้ชั้นใดชั้นหนึ่งจะถูกเจาะทะลุ ชั้นอื่น ๆ ยังสามารถป้องกันได้

บทความนี้จะแบ่งเป็น 5 Layer ตั้งแต่ระดับ Domain Name จนถึง App พร้อมคำแนะนำปฏิบัติจริงที่ใช้ได้ทันที

จุดที่หลายคนมักมองข้าม แต่ถ้าโดนเจาะตรงนี้ แฮกเกอร์สามารถยึดเว็บไซต์ของคุณไปได้แบบ 100% โดยไม่ต้องแตะ WordPress เลยด้วยซ้ำ

Registrar Security

ล็อกบัญชีผู้ให้บริการโดเมน (เช่น GoDaddy, Namecheap) ด้วย 2FA (Two-Factor Authentication) เสมอ หรือตั้งรหัสผ่านยากๆ หากไม่มี 2FA

Domain Privacy

เปิดใช้งาน WHOIS Privacy เพื่อซ่อนอีเมลและเบอร์โทรศัพท์ของคุณจากการถูกสแกนไปทำ Social Engineering

DNSSEC

เปิดใช้งาน DNSSEC เพื่อป้องกันการโจมตีแบบ DNS Spoofing/Cache Poisoning (การดักเปลี่ยนเส้นทางทราฟฟิกไปยังเว็บปลอม)

Cloud WAF

Web Application Firewall ระดับ Domain คือการป้องกันแอปพลิเคชันเว็บที่ทำงานบน Layer 7 (OSI Model) โดยเฉพาะเจาะจงรายโดเมนหรือซับโดเมน ช่วยกรองทราฟฟิกที่เป็นอันตราย (SQL Injection, XSS) ก่อนถึงเซิร์ฟเวอร์ สามารถเปิด-ปิด ปรับแต่งกฎการป้องกันได้ละเอียดระดับรายเว็บ ผ่าน Cloud/Reverse Proxy เพื่อให้มี WAF ครอบคลุมตั้งแต่ระดับ DNS เช่น Cloudflare หรือ Sucuri แนะนำให้ใช้แบบ version เสียเงินเพราะตัวฟรีเดี้ยงบ่อยมากโดยเฉพาะช่วงคนใช้เยอะ แต่ก็แลกมากับความช้านิดหน่อยราวๆ 1-200 ms โดยเฉลี่ย บางช่วงลากไป 600 ms ก็มีประจำ

Domain DDoS protection

คือระบบ/บริการที่ช่วยป้องกันการโจมตีแบบ Distributed Denial of Service ซึ่งเป็นการยิงทราฟฟิกจำนวนมหาศาลใส่เว็บ/เซิร์ฟเวอร์ จนระบบล่มหรือใช้งานไม่ได้ เราสามารถซื้อบริการเสริมตัวนี้จากผู้ให้บริการ Domain หรือ ผู้ให้บริการภายนอกได้เลย ส่วนใหญ่ไม่ค่อยแพง

การกรองทราฟฟิกที่ไม่ดีออกไปก่อนที่มันจะวิ่งมาถึงเซิร์ฟเวอร์ของคุณ

SSL/TLS Certificate

บังคับใช้ HTTPS เสมอเพื่อเข้ารหัสข้อมูลที่รับส่งระหว่างเบราว์เซอร์กับเซิร์ฟเวอร์ แนะนำเป็นแบบ Full (Strict) ใน Cloudflare หรือใช้ Let’s Encrypt ร่วมกับ Certbot auto-renew เพื่อต่ออายุแบบอัตโนมัติ

ต่อให้ WordPress ปลอดภัยแค่ไหน แต่ถ้าหลังบ้านเซิร์ฟเวอร์รั่ว ก็พังได้เหมือนกันครับ

เลือก Managed WordPress Hosting

Hosting ที่ปรับแต่งมาให้เหมาะกับ WordPress โดยเฉพาะ มี Automatic Updates, Built-in WAF, Daily Backup, Isolated Environment

เลือกใช้ Control Panel ยุคใหม่ที่ออกแบบเน้นระบบ Cluster เรื่อง Isolation หรือการแยกส่วนความปลอดภัย คือ ถ้าเว็บไซต์ใครโดนแฮค เว็บไซต์ของคนอื่นๆ ที่อยู่ใน server เดียวกันจะไม่โดนแฮคไปด้วย เนื่องจากออกแบบระบบให้แยกจากกันไปเลย

การเลือก hosting สำหรับ WordPress ให้ “ปลอดภัยจริง” ต้องมองเป็น ระบบ (stack) ไม่ใช่แค่ CPU/RAM เพราะจุดพังส่วนใหญ่คือ security + isolation + config ไม่ใช่สเปคบ้านๆ ราคาถูกอะไรก็ได้

PHP Version

ใช้ PHP เวอร์ชันล่าสุดที่ยังได้รับการสนับสนุน (Security Support)

SFTP > FTP

เลิกใช้ FTP ธรรมดา (ที่ส่งรหัสผ่านแบบไม่เข้ารหัส) แล้วเปลี่ยนมาใช้ SFTP หรือ SSH Key

File Permissions

ตั้งค่าสิทธิ์ของไฟล์และโฟลเดอร์ให้ถูกต้อง

  • Folders: 755
  • Files: 644
  • wp-config.php: 400 หรือ 440 (ขึ้นอยู่กับการตั้งค่าเซิร์ฟเวอร์)

Disable Directory Browsing

ปิดไม่ให้คนนอกเข้ามาดูโครงสร้างโฟลเดอร์ในเว็บได้ผ่านไฟล์ .htaccess

ฐานข้อมูลคือที่เก็บยูสเซอร์ รหัสผ่าน และเนื้อหาทั้งหมดของเว็บไซต์

เปลี่ยน Table Prefix

ตอนติดตั้งอย่าใช้ wp_ เริ่มต้น ให้เปลี่ยนเป็นค่าอื่น เช่น wp_s3cur3_ เพื่อหลบการสแกนอัตโนมัติ

แยก User ฐานข้อมูล

สิทธิ์ของ User ที่ใช้เชื่อมต่อ WordPress ควรเข้าถึงได้เฉพาะฐานข้อมูลของเว็บนั้นๆ ไม่ควรใช้สิทธิ์ระดับ Root

ปิด Remote Access

ตั้งค่าให้ฐานข้อมูลรับการเชื่อมต่อจาก localhost เท่านั้น ไม่เปิดให้ต่อจากไอพีนอกโดยไม่จำเป็น

Backup ฐานข้อมูลทุกวัน

ควรทำการ Backup Database ทุกวัน โดยปกติส่วนใหญ่ก็ทำร่วมกับการ backup WordPress files อยู่แล้ว

ด่านสุดท้ายที่ตัวแอปพลิเคชัน WordPress เอง ซึ่งเป็นจุดที่ถูกโจมตีบ่อยที่สุด

Core Security

อัปเดต WordPress, Plugins, Themes ทุกครั้งที่มีการอัปเดตความปลอดภัย (เปิด Auto Update สำหรับ Minor)

ลบ Theme และ Plugin ที่ไม่ได้ใช้ทิ้งทั้งหมด (ห้ามแค่ปิดใช้งาน ให้ลบออกไปเลย)

Login Security

  • ใช้ 2FA สำหรับแอดมิน
  • เปลี่ยน URL หน้าล็อกอิน (ซ่อน /wp-admin)
  • จำกัดจำนวนครั้งในการเดารหัสผ่าน (Limit Login Attempts)
  • ปิด XML-RPC (เพิ่มใน .htaccess หรือใช้ปลั๊กอิน)

Hardening

wp-config.php: ใส่โค้ดปิดการแก้ไขไฟล์ผ่านหลังบ้าน เพื่อป้องกันไม่ให้แฮกเกอร์แอบแก้โค้ดได้หากหลุดเข้ามา

define( 'DISALLOW_FILE_EDIT', true );

ปิด XML-RPC

หากไม่ได้ใช้แอปมือถือของ WordPress หรือการดึงข้อมูลผ่านแอปภายนอก ควรปิดทิ้งเพราะมักถูกใช้สุ่มรหัสผ่าน (Brute Force)

Layerสิ่งที่ต้องทำทันทีความสำคัญ
Domainเปิด 2FA ที่ Registrarสูงมาก
Networkต่อผ่าน Cloudflare / เปิด SSLสูงมาก
Serverอัปเดต PHP / ใช้ SFTPปานกลาง
Databaseเปลี่ยน Prefix / รหัสผ่านยากๆปานกลาง
Appอัปเดตปลั๊กอิน / เปิด 2FA ที่ Loginสูงมาก

ไม่มีระบบไหนปลอดภัย 100% สิ่งที่สำคัญพอๆ กับการป้องกันคือ “การสำรองข้อมูล (Backup)” ครับ ควรมีระบบ Auto-backup เก็บแยกไว้นอกเซิร์ฟเวอร์เสมอ (เช่น Google Drive, AWS S3) เผื่อเกิดเหตุไม่คาดฝัน จะได้กู้คืนได้ทันที

รายการ plugins สำหรับเพิ่มความปลอดภัยให้ WordPress