
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 รุ่นเก่าอยู่ตลอดเวลา
- เปิด Auto-update สำหรับ WordPress Core เวอร์ชัน Minor (Security patches)
- อัปเดต Plugin และ Theme อย่างน้อย สัปดาห์ละครั้ง
- ลบ Plugin และ Theme ที่ไม่ใช้ ออกจากระบบ — แม้จะ Deactivate แล้ว ก็ยังมีโค้ดที่ถูก Scan ได้
- ใช้แค่ Plugin จากแหล่งที่น่าเชื่อถือ (WordPress.org หรือ Developer ที่รู้จัก)
เทคนิค: ไปที่ Dashboard → Updates ใน WordPress Admin บ่อยๆ หรือติดตั้ง Plugin อย่าง WP Updates Settings เพื่อรับ Email แจ้งเตือนทุกครั้งที่มี Update
2. ใช้รหัสผ่านแข็งแกร่ง + เปิด 2FA
รหัสผ่าน admin123 หรือ password เป็นสิ่งที่แฮกเกอร์ทดลองก่อนเสมอ ในปี 2026 รหัสผ่านที่ดีต้องยาวกว่า 16 ตัวอักษร มีตัวใหญ่ ตัวเล็ก ตัวเลข และสัญลักษณ์ผสมกัน
- ใช้ Password Manager เช่น Bitwarden หรือ 1Password จัดการรหัสผ่านแทนการจำเอง
- เปิด Two-Factor Authentication (2FA) สำหรับทุก Admin Account — ใช้ Plugin เช่น WP 2FA หรือ Google Authenticator
- ห้ามใช้ Username
admin— เปลี่ยนเป็นชื่อที่คาดเดายาก - กำหนดสิทธิ์ Role ให้ตรงหน้าที่ อย่าให้ทุกคนเป็น Administrator
3. จำกัดจำนวนครั้งการล็อกอิน (Login Attempts)
การโจมตีแบบ Brute Force คือการลองรหัสผ่านซ้ำๆ หลายพันครั้งต่อวัน WordPress ไม่มีระบบ Block นี้ตามค่าเริ่มต้น ต้องเพิ่มเอง
- ติดตั้ง Limit Login Attempts Reloaded (ฟรี, 3M+ installs) — กำหนดล็อก IP หลัง Login ผิด 3-5 ครั้ง
- เพิ่ม CAPTCHA บนหน้า Login — Google reCAPTCHA v3 หรือ hCaptcha
- ใช้ Wordfence หรือ iThemes Security ที่มีระบบ Brute Force Protection ในตัว
4. เปลี่ยน URL หน้า Login จาก /wp-admin
URL /wp-admin เป็นที่รู้กันดีทั่วโลก ทำให้ Bot สามารถโจมตีตรงๆ ได้โดยไม่ต้องค้นหา การเปลี่ยนเป็น URL ที่คาดเดายากช่วยลด Brute Force ได้มาก
- ใช้ Plugin WPS Hide Login เปลี่ยน URL หน้า Login ได้ง่ายไม่กี่คลิก เช่น
/my-secure-login - หรือเพิ่มใน
.htaccessเพื่อ Redirect/wp-adminกลับ 404 สำหรับ IP ที่ไม่รู้จัก - จำ URL ใหม่ไว้ให้ดี หรือ Bookmark ไว้
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
- Wordfence Security — ยอดนิยมที่สุด, มี Firewall + Malware Scanner + Brute Force Protection (ฟรีมีครบพอใช้)
- Sucuri Security — เน้น Malware Scan + Security Hardening + Activity Audit Log
- iThemes Security — ตั้งค่าง่าย เหมาะสำหรับมือใหม่ที่ต้องการ All-in-One
ใช้ได้แค่ 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 ไม่ใช่การ ป้องกัน การถูกแฮก แต่เป็น ตาข่ายนิรภัย ที่ทำให้กู้คืนเว็บได้ภายในชั่วโมงหากเกิดเหตุ
- UpdraftPlus — Backup อัตโนมัติไปยัง Google Drive, Dropbox, หรือ S3 (ฟรี)
- BackupBuddy — เหมาะสำหรับเว็บธุรกิจที่ต้องการ Restore แบบ 1-click
- AsiaGB Backup เซิร์ฟเวอร์ทุกวันที่ 1 และ 15 — แต่ควรมี Backup ของตัวเองเพิ่มเติม
- ทดสอบ Restore อย่างน้อย ปีละ 1 ครั้ง เพื่อให้แน่ใจว่า Backup ใช้งานได้จริง
11. Monitor Activity Log
Activity Log บันทึกทุกอย่างที่เกิดขึ้นบน WordPress Admin — ว่าใครเข้าสู่ระบบเมื่อไหร่ มีการแก้ไขไฟล์หรือไม่ มี User ใหม่ถูกสร้างขึ้นหรือเปล่า ช่วยตรวจพบการบุกรุกได้เร็ว
- WP Activity Log — บันทึก Event ละเอียดมาก ทั้ง Login, Post edit, Plugin install
- ตั้ง Email Alert เมื่อมีการ Login จาก IP ใหม่หรือมีการเปลี่ยนแปลง Admin
ปิดการใช้งาน 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: SAMEORIGIN | Clickjacking — ฝัง iframe จากเว็บอื่น |
X-Content-Type-Options: nosniff | MIME Sniffing — Browser ตีความ Content-Type ผิด |
X-XSS-Protection | Cross-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
- Imunify360 — สแกน File ที่อัพโหลดแบบ Real-time, บล็อก IP ที่โจมตีอัตโนมัติ, ตรวจจับ Malware ที่ฝังอยู่ในไฟล์ PHP และ JavaScript
- ถ้าพบว่าเว็บถูก Inject Code ลองดาวน์โหลดไฟล์ที่น่าสงสัยมาตรวจที่ VirusTotal ก่อน
- ตรวจสอบ Access Log และ Error Log ใน DirectAdmin → Logs อย่างน้อยเดือนละ 1 ครั้ง เพื่อหา Request แปลกๆ จาก Bot หรือ Scanner
- หาก Malware ลึกเกินไป ควรติดต่อ Support เพื่อ Clean Site ทั้งหมดและ Restore จาก Backup ที่สะอาด
- หลังจาก Clean Site เสร็จ ต้องเปลี่ยน Password ทุกบัญชีทันที รวมถึง Database Password และ FTP/SFTP Credential เพราะ Malware มักทิ้ง Backdoor ไว้สำหรับกลับมาใหม่
สัญญาณเตือนที่ต้องดำเนินการทันที: ถ้าเว็บโหลดช้าผิดปกติ มี 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 มีสิทธิ์แตกต่างกันอย่างมีนัยสำคัญ
- หลัก Least Privilege — มอบสิทธิ์น้อยที่สุดเท่าที่จำเป็นสำหรับงานนั้นๆ บรรณาธิการที่แค่เขียนบทความไม่จำเป็นต้องเป็น Administrator
- ตรวจสอบและลบ Account ที่ไม่ใช้งานออกเป็นประจำ — Account เก่าเป็นเป้าหมายโปรดของการโจมตีเพราะมักไม่มีใครดูแล
- ใช้ Plugin Members หรือ User Role Editor ถ้าต้องการปรับ Role ให้ละเอียดกว่าค่าเริ่มต้น
- ถ้ามีทีมงาน ควรสร้าง Account แยกสำหรับแต่ละคน ห้ามแชร์ Password Admin กัน
- เมื่อพนักงานหรือ Developer ออกไป ต้องลบ Account หรือเปลี่ยน Password ทันที
| 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 | สูงมาก |
| 12 | Backup อัตโนมัติ Off-site | สูงมาก |
Hosting WordPress ที่ปลอดภัย มี SSL ฟรี
AsiaGB Hosting รวม SSL Certificate, Backup อัตโนมัติ, Imunify360 Anti-Malware และ DirectAdmin ให้ในแพ็กเกจเดียว เริ่มต้น 500 บาท/ปี
ดูแพ็กเกจ Hosting →