Hardening WordPress ป้องกัน Hack

WordPress ครองตลาด CMS กว่า 43% ของเว็บทั่วโลก ทำให้กลายเป็นเป้าหมายอันดับ 1 ของแฮกเกอร์ ไม่ว่าจะเป็นเว็บขนาดเล็กหรือใหญ่ ถ้าไม่ตั้งค่า Security ให้ถูกต้อง ก็มีความเสี่ยงสูงมากที่เว็บจะถูก Inject Malware, ถูกใช้เป็น Spam Server หรือข้อมูลลูกค้ารั่วไหล

บทความนี้รวม 12 ขั้นตอน Hardening WordPress ที่ทำได้โดยไม่ต้องเป็นผู้เชี่ยวชาญด้าน Security พร้อม Checklist ที่ Bookmark ไว้ใช้อ้างอิงได้ตลอด

สถิติน่าตกใจ: จากรายงานของ Sucuri ปี 2025 พบว่า 97% ของเว็บ WordPress ที่ถูกแฮกเกิดจากช่องโหว่ที่แก้ได้ง่ายๆ เช่น Plugin เก่า, รหัสผ่านอ่อน, และไม่มี 2FA

1. อัปเดต WordPress Core, Plugin และ Theme เสมอ

สาเหตุอันดับ 1 ที่เว็บถูกแฮกคือการใช้ WordPress เวอร์ชันเก่าหรือ Plugin ที่มีช่องโหว่ที่รู้จักแล้ว (Known Vulnerability) แฮกเกอร์ใช้เครื่องมือ Scan หาเว็บที่ยังใช้ Plugin รุ่นเก่าอยู่ตลอดเวลา

เทคนิค: ไปที่ Dashboard → Updates ใน WordPress Admin บ่อยๆ หรือติดตั้ง Plugin อย่าง WP Updates Settings เพื่อรับ Email แจ้งเตือนทุกครั้งที่มี Update

2. ใช้รหัสผ่านแข็งแกร่ง + เปิด 2FA

รหัสผ่าน admin123 หรือ password เป็นสิ่งที่แฮกเกอร์ทดลองก่อนเสมอ ในปี 2026 รหัสผ่านที่ดีต้องยาวกว่า 16 ตัวอักษร มีตัวใหญ่ ตัวเล็ก ตัวเลข และสัญลักษณ์ผสมกัน

3. จำกัดจำนวนครั้งการล็อกอิน (Login Attempts)

การโจมตีแบบ Brute Force คือการลองรหัสผ่านซ้ำๆ หลายพันครั้งต่อวัน WordPress ไม่มีระบบ Block นี้ตามค่าเริ่มต้น ต้องเพิ่มเอง

4. เปลี่ยน URL หน้า Login จาก /wp-admin

URL /wp-admin เป็นที่รู้กันดีทั่วโลก ทำให้ Bot สามารถโจมตีตรงๆ ได้โดยไม่ต้องค้นหา การเปลี่ยนเป็น URL ที่คาดเดายากช่วยลด Brute Force ได้มาก

5. ตั้งค่า File Permission ให้ถูกต้อง

Permission ที่ผิดพลาดเปิดโอกาสให้ผู้บุกรุกแก้ไขไฟล์สำคัญได้ หลังจากติดตั้ง WordPress ควรตรวจสอบและตั้งค่า Permission ให้ถูกต้อง:

# โฟลเดอร์ทั้งหมด
chmod 755 directories

# ไฟล์ทั่วไป
chmod 644 files

# wp-config.php (เข้มงวดที่สุด)
chmod 600 wp-config.php

# ห้ามเขียนใน wp-includes
chmod 755 wp-includes

บน DirectAdmin ของ AsiaGB สามารถตั้งค่า Permission ได้ใน File Manager → ไฟล์ที่ต้องการ → Properties

6. ซ่อนข้อมูล WordPress Version

WordPress แสดง Version ใน Meta Tag ตามค่าเริ่มต้น ทำให้แฮกเกอร์รู้ว่าใช้ Version ที่มีช่องโหว่หรือไม่ ซ่อนได้ง่ายด้วยโค้ดใน functions.php:

// เพิ่มใน functions.php ของ Child Theme
remove_action('wp_head', 'wp_generator');
add_filter('the_generator', '__return_empty_string');

7. ปิดการแก้ไขไฟล์จาก Dashboard

WordPress Admin มี Theme Editor และ Plugin Editor ที่ช่วยให้แก้ไขโค้ดได้ตรงจาก Dashboard ถ้าแฮกเกอร์เข้า Admin ได้ก็สามารถ Inject Malware ผ่านส่วนนี้ได้ทันที ปิดด้วยการเพิ่มใน wp-config.php:

define('DISALLOW_FILE_EDIT', true);

8. ติดตั้ง Security Plugin

Security Plugin ช่วยครอบคลุมหลายด้านพร้อมกัน ได้แก่ Firewall, Malware Scanner, Login Protection และ Activity Log

ใช้ได้แค่ Security Plugin เดียวต่อเว็บ — ติดตั้งหลายตัวพร้อมกันอาจทำให้ Conflict กัน หรือ Server Load สูงโดยไม่จำเป็น

9. ใช้ SSL Certificate บังคับ HTTPS

HTTPS เข้ารหัสข้อมูลระหว่าง Browser และ Server ป้องกัน Man-in-the-Middle Attack บน AsiaGB Hosting ได้รับ SSL Certificate โดยไม่มีค่าใช้จ่ายเพิ่ม และบังคับ HTTPS ได้ผ่าน DirectAdmin หรือ Plugin Really Simple SSL

10. Backup สม่ำเสมอ + เก็บ Off-site

Backup ไม่ใช่การ ป้องกัน การถูกแฮก แต่เป็น ตาข่ายนิรภัย ที่ทำให้กู้คืนเว็บได้ภายในชั่วโมงหากเกิดเหตุ

11. Monitor Activity Log

Activity Log บันทึกทุกอย่างที่เกิดขึ้นบน WordPress Admin — ว่าใครเข้าสู่ระบบเมื่อไหร่ มีการแก้ไขไฟล์หรือไม่ มี User ใหม่ถูกสร้างขึ้นหรือเปล่า ช่วยตรวจพบการบุกรุกได้เร็ว

ปิดการใช้งาน XML-RPC และ REST API ที่ไม่จำเป็น

XML-RPC เป็น API เก่าของ WordPress ที่มักถูกใช้เป็นช่องทางโจมตีแบบ Brute Force และ DDoS Amplification ถ้าไม่ได้ใช้งาน Jetpack หรือ Mobile App ของ WordPress ควรปิดทันที

เพิ่มโค้ดนี้ใน .htaccess เพื่อบล็อก XML-RPC ทั้งหมด:

# ปิด XML-RPC อย่างสมบูรณ์
<Files xmlrpc.php>
  Order Deny,Allow
  Deny from all
</Files>

สำหรับ WordPress REST API ที่ไม่จำเป็น สามารถปิดการเข้าถึงจากผู้ที่ไม่ได้ล็อกอินได้ผ่าน functions.php ของ Child Theme:

// ปิด REST API สำหรับผู้ไม่ล็อกอิน (WordPress 4.7+)
add_filter('rest_authentication_errors', function($result) {
    if (!is_user_logged_in()) {
        return new WP_Error('rest_not_logged_in', 'Authentication required.', ['status' => 401]);
    }
    return $result;
});

ข้อควรระวัง: ถ้าใช้ Plugin อย่าง Jetpack, WooCommerce หรือ Theme ที่พึ่งพา REST API อย่าปิดทั้งหมด ควรปรึกษา Developer ก่อน

ตั้งค่า Security Headers ใน .htaccess

Security Headers ที่ถูกต้องช่วยป้องกันการโจมตีหลายรูปแบบเช่น Clickjacking, MIME Sniffing และ XSS ผ่าน Browser โดยตรง เพิ่ม Headers เหล่านี้ใน .htaccess ของ WordPress:

# Security Headers สำหรับ WordPress
<IfModule mod_headers.c>
  Header always set X-Content-Type-Options "nosniff"
  Header always set X-Frame-Options "SAMEORIGIN"
  Header always set Referrer-Policy "strict-origin-when-cross-origin"
  Header always set X-XSS-Protection "1; mode=block"
  Header always set Permissions-Policy "geolocation=(), microphone=(), camera=()"
</IfModule>
Header ป้องกันจาก
X-Frame-Options: SAMEORIGINClickjacking — ฝัง iframe จากเว็บอื่น
X-Content-Type-Options: nosniffMIME Sniffing — Browser ตีความ Content-Type ผิด
X-XSS-ProtectionCross-Site Scripting ใน Browser รุ่นเก่า
Referrer-Policyรั่วไหลของ URL ที่มี Parameter สำคัญ

ป้องกัน Malware ด้วย Imunify360 และ Server-Level Firewall

นอกจาก Plugin Security ระดับ WordPress แล้ว Hosting ที่ดีควรมี Malware Protection ระดับ Server ด้วย AsiaGB Hosting ติดตั้ง Imunify360 — ระบบ Anti-Malware และ Intrusion Prevention System (IPS) ที่ทำงานบน Server โดยตรง ไม่ใช่แค่ Plugin ที่รันบน PHP

สัญญาณเตือนที่ต้องดำเนินการทันที: ถ้าเว็บโหลดช้าผิดปกติ มี Redirect แปลกๆ ไปยังเว็บภาษาต่างประเทศ, พบ Admin Account ที่ไม่ได้สร้างเอง, Google Search Console แจ้งเตือน Security Issue หรือ Google แสดง "This site may harm your computer" — รีบตรวจสอบด้วย Wordfence Scan หรือ Sucuri SiteCheck ทันที อย่ารอนานเพราะ Malware จะยิ่งแพร่กระจายในไฟล์อื่น

จัดการ User Roles และ Permissions อย่างรัดกุม

หนึ่งในช่องโหว่ที่มองข้ามบ่อยที่สุดคือการมอบสิทธิ์ให้ผู้ใช้มากเกินความจำเป็น ใน WordPress มี Role 5 ระดับ ได้แก่ Administrator, Editor, Author, Contributor และ Subscriber แต่ละ Role มีสิทธิ์แตกต่างกันอย่างมีนัยสำคัญ

Role สิทธิ์หลัก เหมาะสำหรับ
Administratorทุกอย่าง รวมถึงติดตั้ง Plugin/Themeเจ้าของเว็บ (1-2 คนเท่านั้น)
Editorจัดการ Post/Page ของทุกคนบรรณาธิการ, หัวหน้าทีมเขียน
Authorเขียนและ Publish Post ของตัวเองนักเขียนประจำ
Contributorเขียน Post แต่ต้องรอ Approveผู้เขียน Guest Post
Subscriberอ่านเนื้อหา Private เท่านั้นสมาชิก Membership Site

12. Checklist ตรวจสอบ WordPress Security

#รายการระดับความสำคัญ
1อัปเดต WordPress Core, Plugin, Themeสูงมาก
2รหัสผ่าน Admin ยาว 16+ ตัวอักษรสูงมาก
3เปิด 2FA สำหรับ Admin ทุกคนสูงมาก
4ลบ Plugin/Theme ที่ไม่ใช้สูง
5จำกัด Login Attemptsสูง
6เปลี่ยน URL หน้า Loginกลาง
7ตั้งค่า File Permission ถูกต้องสูง
8ปิด File Editor ใน Dashboardกลาง
9ซ่อน WordPress Versionกลาง
10ติดตั้ง Security Plugin (Wordfence)สูง
11ใช้ SSL Certificate + บังคับ HTTPSสูงมาก
12Backup อัตโนมัติ Off-siteสูงมาก

Hosting WordPress ที่ปลอดภัย มี SSL ฟรี

AsiaGB Hosting รวม SSL Certificate, Backup อัตโนมัติ, Imunify360 Anti-Malware และ DirectAdmin ให้ในแพ็กเกจเดียว เริ่มต้น 500 บาท/ปี

ดูแพ็กเกจ Hosting →