WordPress Security

วิธีตั้งค่า Wordfence ทีละขั้น (2026) และวิธีอ่านผลสแกน คำเตือนแบบไหนต้องรีบแก้

วิธีตั้งค่า Wordfence ทีละขั้น (2026) และวิธีอ่านผลสแกน คำเตือนแบบไหนต้องรีบแก้

สรุปคำตอบ

การตั้งค่า Wordfence คือการปรับ Firewall, Brute Force Protection, Login Security และ Scan ให้เหมาะกับเว็บ ลำดับที่แนะนำคือ สำรองเว็บก่อน ปล่อย Learning Mode 7 วันแล้วเปลี่ยนเป็น Enabled and Protecting ทำ Extended Protection ให้ Firewall ทำงานก่อน WordPress เปิด 2FA ให้แอดมิน และเปิดสแกนเทียบไฟล์ Theme กับ Plugin กับต้นฉบับ เวลาอ่านผลสแกนให้จัดการระดับ Critical และ High ก่อน แต่ต้องตรวจสอบไฟล์และสำรองไว้ก่อนลบทุกครั้ง

การตั้งค่า Wordfence คือการปรับตัวเลือกของปลั๊กอิน Wordfence Security ให้เข้ากับเว็บของคุณ ครอบคลุม 4 ส่วน ได้แก่ Firewall (WAF), การป้องกันการเดารหัสผ่าน (Brute Force Protection), Login Security (2FA และ reCAPTCHA) และการสแกนไฟล์ หากยังไม่รู้จัก Wordfence หรือยังไม่แน่ใจว่าเหมาะกับเว็บคุณไหม ให้อ่าน Wordfence คืออะไร เหมาะกับใคร ก่อน บทความนี้เป็นคู่มือภาคปฏิบัติ ไล่ตามลำดับเมนูของปลั๊กอิน และอธิบายวิธีอ่านผลสแกนว่าคำเตือนแบบไหนต้องรีบแก้ แบบไหนตรวจสอบก่อนได้

ข้อมูลอ้างอิงในบทความใช้ชื่อเมนูและชื่อผลสแกนตามเอกสารทางการของ Wordfence และตามโค้ดของปลั๊กอินเวอร์ชันปัจจุบัน ณ ตุลาคม 2026 หน้าปลั๊กอินบน WordPress.org ระบุว่า Wordfence เวอร์ชัน 9.0.2 มีการติดตั้งใช้งานมากกว่า 5 ล้านเว็บ ต้องใช้ WordPress 4.7 ขึ้นไปและ PHP 7.0 ขึ้นไป (WordPress.org) ชื่อเมนูในบทความคงไว้เป็นภาษาอังกฤษตามที่แสดงในหน้าจอ เพื่อให้หาเจอง่าย

สรุปสั้น: สำรองเว็บก่อนติดตั้ง ปล่อย Learning Mode ทำงานแล้วเปลี่ยนเป็น Enabled and Protecting ทำ Extended Protection ให้ Firewall ทำงานก่อน WordPress เปิด 2FA ให้แอดมินทุกคน เปิดสแกนเทียบไฟล์ Theme และ Plugin กับต้นฉบับ แล้วจัดการผลสแกนระดับ Critical และ High ก่อนเสมอ แต่ตรวจสอบให้แน่ใจก่อนลบไฟล์ใดๆ

ก่อนติดตั้ง: เตรียม 4 อย่างนี้ให้พร้อม

  1. สำรองไฟล์และฐานข้อมูล WordPress ประกอบด้วยไฟล์และฐานข้อมูล การสำรองต้องครบทั้งสองส่วน (WordPress Developer Resources) ขั้นตอนอยู่ในบทความ ควรทำ Backup WordPress อย่างไรให้ปลอดภัย การตั้งค่า Firewall จะแก้ไฟล์ .htaccess หรือ .user.ini และปุ่ม Repair หรือ Delete ในหน้าผลสแกนจะเขียนทับหรือลบไฟล์จริง จึงควรมีจุดย้อนกลับไว้ก่อน
  2. เช็กเวอร์ชัน PHP และ WordPress ให้ตรงตามที่หน้าปลั๊กอินกำหนด ถ้ายังใช้ PHP เก่า ให้อ่าน PHP Version ไม่รองรับ ทำให้ WordPress Error ได้อย่างไร ก่อนอัปเกรด
  3. เช็กว่ามีระบบความปลอดภัยอื่นทำงานซ้ำอยู่ไหม เช่น ปลั๊กอิน Security ตัวอื่นที่มี Firewall หรือจำกัดการล็อกอินเหมือนกัน ระบบ Firewall ของ Hosting หรือ CDN อย่าง Cloudflare จากเคสที่เราเจอ การเปิดฟีเจอร์เดียวกันสองที่มักทำให้ล็อกตัวเองออกจากหลังบ้าน หรือหาสาเหตุของการบล็อกได้ยาก คำแนะนำของเราคือเลือกให้แต่ละหน้าที่มีเจ้าของเดียว ถ้าเว็บอยู่หลัง CDN หรือ reverse proxy ให้ตรวจตัวเลือก How does Wordfence get IPs ในหน้า Dashboard > Global Options เพราะ Wordfence จะเตือนเมื่อค่านี้ตั้งไม่ตรงกับระบบจริง (Wordfence: Scan Results) หากเห็น IP ผิด การบล็อกและการนับการล็อกอินผิดพลาดจะไปตกที่ IP ของ proxy แทนผู้โจมตี
  4. เตรียมทางเข้าไฟล์โดยไม่ผ่าน WordPress เช่น FTP, SFTP หรือ File Manager ของ Hosting เอกสาร Wordfence ระบุว่าถ้าไฟล์ wordfence-waf.php หายหรือพาธเปลี่ยนหลังย้ายโฮสต์ เว็บอาจขึ้น 500 Internal Server Error (Wordfence: Web Application Firewall) กรณีนี้ต้องแก้ไฟล์โดยตรง ดูวิธีไล่ปัญหาได้ใน WordPress Error 500 คืออะไร และแก้ไขอย่างไร

ติดตั้งและตั้งค่าเริ่มต้น

  1. เข้า Plugins > Add New ค้นหา Wordfence Security กด Install แล้ว Activate
  2. หน้าจอแรกหลังเปิดใช้งานจะขึ้นปุ่ม Get Your Wordfence License และ Install an existing license พร้อมข้อความให้ลงทะเบียนกับ Wordfence (โค้ด Wordfence 9.0.2) ถ้ายังไม่ซื้อ Premium ให้ลงทะเบียนแบบฟรี ใช้อีเมลที่คุณเปิดอ่านจริง เพราะการแจ้งเตือนทั้งหมดจะส่งไปที่อีเมลนี้
  3. ไปที่ Wordfence > Dashboard > Global Options ในส่วน Email Alert Preferences ตรวจช่อง Where to email alerts และตั้ง Alert me with scan results of this severity level or greater คำแนะนำของเราคือเริ่มที่ระดับ High เพื่อไม่ให้อีเมลเยอะจนคนไม่อ่าน และเปิด Email me if the Wordfence Web Application Firewall is turned off กับ Email me if Wordfence is deactivated ไว้ เพราะผู้บุกรุกบางรายจะปิดปลั๊กอินความปลอดภัยก่อนลงมือ

ความต่างระหว่างรุ่นฟรีกับ Premium ที่ควรรู้ก่อนตั้งค่า มีเพียงประเด็นที่เอกสารระบุไว้ชัด คือรุ่นฟรีได้กฎ Firewall และ Malware Signature ช้ากว่า Premium 30 วัน (WordPress.org) ไม่มี Real-Time IP Blocklist (Wordfence: Web Application Firewall) และไม่มีการตรวจ Blocklist หรือ Spamvertising ของโดเมน (Wordfence: Scan) ส่วนรายละเอียดเชิงเปรียบเทียบอยู่ในบทความ Wordfence คืออะไร แล้ว

ตั้งค่า Wordfence Firewall

1. Learning Mode แล้วเปลี่ยนเป็น Enabled and Protecting

ตั้งค่าได้ที่ Wordfence > Firewall > All Firewall Options หัวข้อ Basic Firewall Options ตัวเลือก Web Application Firewall Status มี 3 สถานะ คือ Enabled and Protecting, Learning Mode และ Disabled เมื่อติดตั้งครั้งแรก Learning Mode จะทำงาน 7 วัน ระหว่างนั้น Firewall จะไม่บล็อกคำขอที่ดูคล้ายการโจมตี แต่จะเพิ่มลงใน Allowlist แทน เพื่อลดการบล็อกผิดกับฟีเจอร์ปกติของ Theme และ Plugin (Wordfence: Firewall Learning Mode)

  • ระหว่าง Learning Mode ให้ใช้งานเว็บให้ครบทุกฟีเจอร์ เช่น เขียนและเผยแพร่บทความ แก้ Theme ปรับค่า Plugin จัดการ Widget และคอมเมนต์ ถ้ามั่นใจว่าใช้ครบแล้วเปลี่ยนเป็น Enabled and Protecting ก่อนครบ 7 วันได้
  • เอกสารเตือนว่า ถ้าเพิ่งโดนแฮกหรือกำลังถูกโจมตี ไม่ควรใช้ Learning Mode เพราะคำขอของผู้โจมตีอาจถูกเพิ่มลงใน Allowlist ไปด้วย
  • หลังจบ Learning Mode ให้เปิดดูรายการ Allowlist ถ้ามีจำนวนมาก (เอกสารยกตัวอย่างว่าเกิน 20 รายการ) อาจหมายถึงมีการโจมตีเกิดขึ้นช่วงนั้น และควรลบรายการที่ไม่รู้จักออก
  • ถ้าเปิด Learning Mode เองภายหลัง เช่น ตอนติดตั้ง Plugin ใหม่ มันจะไม่หมดอายุเองจนกว่าจะตั้งวันที่ไว้ ต้องจำกลับมาเปลี่ยนเป็น Enabled and Protecting

2. Extended Protection (Optimize the Wordfence Firewall)

หลังติดตั้ง Firewall จะอยู่ในโหมด Basic WordPress Protection ซึ่งโหลดเหมือน Plugin ทั่วไปหลัง WordPress เริ่มทำงาน ช่องโหว่บางแบบจึงอาจทำงานก่อน Firewall และไฟล์ PHP ที่ถูกเรียกตรงๆ จะไม่ผ่าน Firewall เลย โหมด Extended Protection แก้ปัญหานี้โดยให้ Firewall โหลดก่อนไฟล์ PHP ทุกไฟล์ ทั้งสองโหมดใช้ได้ในรุ่นฟรี (Wordfence: Optimizing The Firewall)

แผนภาพลำดับการทำงานของ Wordfence Firewall แบบ Basic และ Extended Protection
Extended Protection ให้ Firewall ตรวจคำขอก่อน WordPress และ Plugin อื่นโหลด · ภาพ: WP Doctor Thailand · อ้างอิง: Wordfence Help: Optimizing The Firewall
  1. กดปุ่ม CLICK HERE TO CONFIGURE ที่แถบแจ้งเตือนด้านบน หรือไปที่ Firewall > All Firewall Options หัวข้อ Protection Level แล้วกด OPTIMIZE THE WORDFENCE FIREWALL
  2. ระบบจะเลือกรูปแบบเซิร์ฟเวอร์ให้อัตโนมัติ ปกติไม่ต้องเปลี่ยน
  3. ดาวน์โหลดไฟล์สำรอง .htaccess และ/หรือ .user.ini ตามที่ระบบเสนอ แล้วกด Continue
  4. รอสูงสุดประมาณ 5 นาที แล้วกลับมาดูว่า Protection Level เปลี่ยนเป็น Extended Protection

สิ่งที่เปลี่ยนจริงคือค่า PHP auto_prepend_file ซึ่งสั่งให้ PHP โหลดไฟล์ที่กำหนดก่อนไฟล์หลักทุกครั้ง (PHP Manual: Core php.ini directives) Wordfence สร้างไฟล์ wordfence-waf.php ไว้ที่ root ของเว็บ แล้วเพิ่มบล็อกที่มีคอมเมนต์ Wordfence WAF และ END Wordfence WAF ลงใน .user.ini, .htaccess หรือ php.ini แล้วแต่ระบบ หน้าตาจะคล้ายแบบนี้ (พาธเป็นตัวอย่าง)

; .user.ini (เซิร์ฟเวอร์ที่รัน PHP แบบ CGI/FastCGI เช่น PHP-FPM)
; Wordfence WAF
auto_prepend_file = '/home/user/public_html/wordfence-waf.php'
; END Wordfence WAF

# .htaccess (Apache ที่รัน PHP เป็นโมดูล)
# Wordfence WAF
<IfModule mod_php.c>
	php_value auto_prepend_file '/home/user/public_html/wordfence-waf.php'
</IfModule>
# END Wordfence WAF

รูปแบบนี้ตรงกับโค้ดที่ปลั๊กอินใช้เขียนไฟล์ (โค้ด Wordfence 9.0.2) เหตุที่ต้องรอ 5 นาทีคือ PHP อ่านไฟล์ .user.ini ซ้ำตามค่า user_ini.cache_ttl ซึ่งค่าเริ่มต้นคือ 300 วินาที (PHP Manual: .user.ini files) ข้อควรระวังมี 3 ข้อ

  • บางโฮสต์ไม่รองรับ .user.ini ต้องเลือก Manual Configuration แล้วตั้ง auto_prepend_file ใน PHP Variables ของแผงควบคุม หรือให้ฝ่าย Support ของโฮสต์ตั้งให้ เอกสารยกตัวอย่าง SiteGround, Kinsta และ Pagely
  • เซิร์ฟเวอร์ NGINX ต้องเพิ่ม location ปิดการเข้าถึงไฟล์ .user.ini เอง เพราะไฟล์นี้อาจมีข้อมูลที่ไม่ควรเปิดเผย
  • ก่อนถอนการติดตั้ง Wordfence หรือย้ายโฮสต์ ให้กด Remove Extended Protection ก่อน ถ้าลบปลั๊กอินไปแล้วแต่ค่า auto_prepend_file ยังชี้ไปที่ไฟล์ที่ไม่มีอยู่ เว็บจะขึ้น Error 500 ถ้าต้องถอดเอง ให้ลบบล็อกระหว่างคอมเมนต์สองบรรทัดนั้น รอ 5 นาที แล้วจึงลบ wordfence-waf.php (ดูเรื่องไฟล์นี้เพิ่มใน .htaccess พัง ทำให้ WordPress เข้าไม่ได้จริงไหม)

3. Rate Limiting

Rate Limiting จำกัดจำนวนหน้าที่ผู้เข้าชมและบอทเรียกได้ต่อนาที เปิดด้วย Enable Rate Limiting and Blocking ในหน้า Firewall Options ค่าที่เอกสาร Wordfence แนะนำไว้มีดังนี้ (Wordfence: Rate Limiting)

ตัวเลือก ค่าที่ Wordfence แนะนำ หมายเหตุ
How should we treat Google’s crawlers Verified Google crawlers have unlimited access to this site ตรวจด้วย reverse DNS จึงกันบอทที่ปลอมตัวเป็น Googlebot ได้
If anyone’s requests exceed 120 ต่อนาที ถ้าตั้งไว้ 60 หรือน้อยกว่า หน้าจอจะเตือนว่าเข้มเกินไป
If a crawler’s page views exceed 120 ต่อนาที แบบ throttle throttle คือชะลอ ไม่ใช่บล็อก
If a crawler’s pages not found (404s) exceed 30 ต่อนาที แบบ block ใช้ได้เมื่อเว็บไม่มีลิงก์หรือรูปเสียจำนวนมาก
If a human’s page views exceed 120 ต่อนาที ควรตั้งสูงไว้ โดยเฉพาะเว็บที่ใช้ AJAX
How long is an IP address blocked when it breaks a rule Wordfence ใช้ 5 นาทีถึง 1 ชั่วโมงบนเว็บของตนเอง ยาวกว่านี้ได้ แต่ IP บางชุดถูกใช้ร่วมกันหลายคน

ตั้งค่า Brute Force Protection และ Login Security

Brute Force Protection

อยู่ในหน้า Firewall > All Firewall Options หัวข้อ Brute Force Protection หลักการของการโจมตีแบบนี้อธิบายไว้แล้วใน Brute Force Attack คืออะไร และป้องกันใน WordPress อย่างไร ตารางนี้แยกให้ชัดว่าส่วนไหนเป็นคำแนะนำของ Wordfence และส่วนไหนเป็นคำแนะนำของเรา (Wordfence: Brute Force Protection)

ตัวเลือก เอกสาร Wordfence คำแนะนำของเรา
Lock out after how many login failures แนะนำ 20 ครั้ง เว็บที่มีผู้ใช้หลังบ้านไม่กี่คน ใช้ 10 ได้
Lock out after how many forgot password attempts 5 ครั้งเพียงพอสำหรับเว็บส่วนใหญ่ 5
Count failures over what time period ยกตัวอย่าง 5 นาที และตั้งนานกว่านี้ได้ 4 ชั่วโมง เพื่อจับการเดาแบบช้าๆ
Amount of time a user is locked out ยกตัวอย่าง 5 นาที และแนะนำว่าเพิ่มเป็น 60 นาทีได้ 4 ชั่วโมงขึ้นไป
Immediately lock out invalid usernames แนะนำสำหรับเว็บที่มีแอดมิน 1 ถึง 2 คนและบรรณาธิการไม่กี่คน เปิด ยกเว้นเว็บสมาชิกหรือร้านค้าที่ลูกค้าล็อกอินเอง
Immediately block the IP of users who try to sign in as these usernames ใส่ชื่อที่ถูกเดาบ่อย เช่น admin หรือชื่อโดเมน แต่ห้ามซ้ำหรือใกล้เคียงชื่อผู้ใช้จริง admin, administrator, ชื่อโดเมน
Prevent the use of passwords leaked in data breaches ค่าเริ่มต้นบล็อกเฉพาะแอดมิน ขยายเป็นทุกคนที่มีสิทธิ์ publish posts
Enforce strong passwords แนะนำ Force admins and publishers to use strong passwords ตามที่ Wordfence แนะนำ
Don’t let WordPress reveal valid users in login errors แนะนำให้เปิด เปิด
Prevent discovery of usernames through ‘/?author=N’ scans, the oEmbed API, the WordPress REST API, and WordPress XML Sitemaps แนะนำให้เปิดไว้ เปิด แล้วทดสอบหน้าผู้เขียนของ Theme

เกณฑ์รหัสผ่านที่ Wordfence ถือว่าแข็งแรงคือยาวอย่างน้อย 12 ตัวอักษร มีตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก ตัวเลข และสัญลักษณ์อย่างละหนึ่งตัวขึ้นไป ไม่ซ้ำตัวเดิม 3 ครั้งขึ้นไป และไม่เรียงลำดับอย่าง 123 หรือ abcd

Two-Factor Authentication (2FA)

2FA ของ Wordfence ใช้แอป Authenticator แบบ TOTP เช่น Google Authenticator หรือ Microsoft Authenticator และใช้ได้ในรุ่นฟรี (Wordfence: Two-Factor Authentication) วิธีเปิดสำหรับแอดมิน

  1. เข้าเมนู Wordfence > Login Security
  2. เปิดแอป Authenticator สแกน QR Code แล้วกรอกรหัส 6 หลักที่แอปแสดง เพื่อยืนยันและกด Activate
  3. กด Download Recovery Codes แล้วเก็บไว้คนละที่กับโทรศัพท์ ถ้าโทรศัพท์หายจะใช้รหัสชุดนี้เข้าระบบได้
  4. ในแท็บ Settings ส่วน 2FA Roles ตั้ง Administrator เป็น Required

ตามเอกสาร Login Security Options การบังคับ 2FA ของแอดมินจะมีผลหลังจากมีแอดมินอย่างน้อยหนึ่งคนตั้ง 2FA แล้ว เพื่อกันการล็อกแอดมินทุกคนออก บทบาทอื่นที่ตั้งเป็น Required จะได้ Grace Period ค่าเริ่มต้น 10 วัน ส่วนแอดมินไม่มี Grace Period โดยค่าเริ่มต้น และ Wordfence ไม่แนะนำให้บังคับ 2FA กับลูกค้าในร้านค้าออนไลน์ ควรตั้งเป็น Optional แทน ตัวเลือก Require 2FA for XML-RPC call authentication ตั้งเป็น Required ไว้แล้วโดยค่าเริ่มต้น ควรคงไว้ ยกเว้นใช้แอป WordPress บนมือถือหรือบริการที่ต้องล็อกอินผ่าน XML-RPC (Wordfence: Login Security Options) อ่านเรื่อง XML-RPC เพิ่มเติมได้ที่ XML-RPC คืออะไร ควรปิดใน WordPress ไหม ตั้งแต่เวอร์ชัน 9 หน้าปลั๊กอินระบุว่ามี Passkeys ให้ล็อกอินด้วยลายนิ้วมือ ใบหน้า หรือ PIN ของอุปกรณ์เป็นอีกทางเลือก (WordPress.org)

reCAPTCHA

Wordfence ใช้ Google reCAPTCHA v3 ซึ่งไม่ต้องให้ผู้ใช้คลิกรูปภาพ แต่ให้คะแนนแต่ละคำขอระหว่าง 0.0 ถึง 1.0 (Google for Developers: reCAPTCHA v3) ขั้นตอนคือ สมัคร Site Key และ Secret Key กับ Google ใส่ในแท็บ Settings ของ Login Security แล้วเปิด Enable reCAPTCHA on the login and user registration pages ค่าเกณฑ์เริ่มต้นคือ 0.5 Wordfence แนะนำให้เปิด Run reCAPTCHA in test mode ช่วงสั้นๆ ก่อน เพื่อดูกราฟคะแนนว่าผู้ใช้จริงได้คะแนนเท่าไร แล้วค่อยปรับเกณฑ์ ข้อจำกัดคือใช้ได้กับหน้าล็อกอินและลงทะเบียนมาตรฐานของ WordPress และ WooCommerce เท่านั้น หน้าล็อกอินที่ Theme หรือ Plugin สร้างเองอาจไม่ทำงาน (Wordfence: Login Security Options)

ตั้งค่า Wordfence Scan

ตั้งค่าได้ที่ Wordfence > Scan > Scan Options and Scheduling ช่อง Scan Type มี 4 แบบ (Wordfence: Scan)

  • Limited Scan สำหรับโฮสต์ที่ทรัพยากรน้อยมาก หรือสแกนแล้วหน่วยความจำไม่พอ
  • Standard Scan แนะนำสำหรับเว็บส่วนใหญ่ แต่ยังไม่รวมการเทียบไฟล์ Theme และ Plugin กับต้นฉบับบน WordPress.org
  • High Sensitivity สำหรับตอนที่รู้หรือสงสัยว่าเว็บโดนแฮก รวมการสแกนไฟล์รูปภาพและไฟล์ไบนารีเหมือนเป็นโค้ด ใช้เวลาและทรัพยากรมากกว่า
  • Custom Scan จะขึ้นเองเมื่อคุณติ๊กเลือกตัวเลือกเอง

คำแนะนำของเราคือเริ่มจาก Standard Scan แล้วเปิดเพิ่ม 2 ตัวเลือก คือ Scan theme files against repository versions for changes และ Scan plugin files against repository versions for changes (หน้าจอจะเปลี่ยนเป็น Custom Scan) เพราะเป็นวิธีที่ตรงที่สุดในการจับไฟล์ Plugin ที่ถูกแก้ ตัวเลือกอื่นที่ควรรู้จาก Scan Options (Wordfence: Scan Options)

  • Scan files outside your WordPress installation ปิดไว้โดยค่าเริ่มต้น ค่าปกติจะสแกน wp-admin, wp-content, wp-includes และไฟล์ใน root ของ WordPress ถ้าบัญชีโฮสต์มีโฟลเดอร์อื่นที่ไม่รู้ที่มา ควรเปิดเมื่อตรวจหาการติดเชื้อ
  • Scan images, binary, and other files as if they were executable ใช้ตอนล้างการติดเชื้อที่ไม่หาย เพราะโค้ดอันตรายบางครั้งซ่อนในไฟล์นามสกุลรูปภาพ
  • Use low-resource scanning สำหรับ Shared Hosting ทำให้สแกนนานขึ้น 2 ถึง 4 เท่า แต่ใช้ทรัพยากรน้อยลง
  • ถ้าสแกนไม่จบ ให้ลองตั้ง Maximum execution time for each scan stage เป็น 30, 15 และ 12 ตามลำดับ ตามที่เอกสารแนะนำ

เรื่องรอบการสแกนอัตโนมัติ รุ่นฟรีมี Quick Scan ทุกวันและ Full Scan ทุก 72 ชั่วโมง ส่วน Premium มี Full Scan ทุก 24 ชั่วโมงและกำหนดเวลาเองได้ ทั้งสองรุ่นกดสแกนเองจากหน้า Scan ได้ไม่จำกัด (Wordfence: Scan Scheduling) ถ้าใช้รุ่นฟรี เราแนะนำให้กด Start New Scan เองทุกครั้งหลังติดตั้งหรืออัปเดต Plugin และ Theme

วิธีอ่านผลสแกน Wordfence: คำเตือนแบบไหนต้องรีบแก้

ผลสแกนของ Wordfence มี 4 ระดับ Critical คือต้องตรวจทันที High คือควรตรวจโดยเร็วแต่อาจยังไม่ใช่ภัยเฉพาะหน้า Medium คือเรื่องที่ควรรู้แต่เลือกไม่ทำอะไรก็ได้ และ Low คือมักปล่อยไว้ได้ (Wordfence: Scan) ปุ่มที่ใช้จัดการแต่ละรายการมีดังนี้ (Wordfence: Scan Results)

  • Repair เขียนทับด้วยไฟล์ต้นฉบับ ใช้ได้เฉพาะไฟล์ Core และ Plugin/Theme ที่มีบน WordPress.org โค้ดที่ปรับแต่งเองในไฟล์นั้นจะหายไป
  • View Differences เทียบกับไฟล์ต้นฉบับ สีเขียวคือโค้ดที่เพิ่ม สีเหลืองคือโค้ดที่ถูกแก้ สีแดงคือโค้ดที่ถูกลบ
  • Ignore มีสองแบบ คือ Ignore until file changes (จะเตือนอีกเมื่อไฟล์เปลี่ยน) และ Always ignore (ไม่เตือนอีกเลย) แนะนำแบบแรกเสมอ
  • Hide File เพิ่มกฎใน .htaccess เพื่อไม่ให้ไฟล์ตั้งค่าหรือไฟล์สำรองถูกเปิดจากภายนอก
  • Delete File และ Mark as Fixed ลบไฟล์ หรือซ่อนรายการชั่วคราวจนกว่าจะสแกนรอบถัดไป

ตารางนี้รวมผลสแกนที่พบบ่อย ชื่อในคอลัมน์แรกเป็นข้อความที่ Wordfence แสดงจริง ระดับความรุนแรงอ้างอิงจากเอกสาร Scan Results และโค้ดของปลั๊กอินเวอร์ชัน 9.0.2 (wfScanEngine.php, wordfenceHash.php, wordfenceScanner.php)

ผลสแกนที่ขึ้น ระดับ ความหมาย สิ่งที่ควรทำ
File appears to be malicious or unsafe Critical เนื้อหาไฟล์ตรงกับรูปแบบโค้ดอันตราย เช่น Backdoor หรือโค้ดที่เข้ารหัสซ่อนไว้ เปิด View File ดูก่อน สำรองไฟล์แล้วลบหรือซ่อม Plugin สำรองข้อมูลบางตัวสร้างไฟล์ที่คล้ายมัลแวร์ได้
This file is suspected malware Critical ทั้งไฟล์ตรงกับลายเซ็นมัลแวร์ที่รู้จัก ถือว่าเว็บถูกเจาะแล้ว ต้องหาว่าเข้ามาทางไหนและมีไฟล์อื่นอีกไหม
Publicly accessible config, backup, or log file found Critical มีไฟล์อย่าง wp-config.bak หรือไฟล์ log ที่เปิดอ่านได้จากเบราว์เซอร์ ลบถ้าไม่ใช้ แต่ห้ามลบ .user.ini ที่ระบบต้องใช้ ให้กด Hide File แทน แล้วเปลี่ยนรหัสฐานข้อมูลถ้าไฟล์มีรหัสผ่าน
The Plugin “…” has a security vulnerability Critical Plugin มีช่องโหว่ที่รู้จักและยังไม่มีเวอร์ชันแก้ ปิดและลบ Plugin จนกว่าจะมีเวอร์ชันแก้
Plugin has been removed from WordPress.org Critical Plugin ถูกถอดออกจาก WordPress.org อาจเพราะผู้พัฒนาเลิกทำ หรือเพราะปัญหาความปลอดภัย หาสาเหตุ และโดยทั่วไปควรเปลี่ยนไปใช้ Plugin ที่ยังได้รับการดูแล
The Plugin “…” needs an upgrade Medium หรือ Critical มีเวอร์ชันใหม่ ถ้าเวอร์ชันใหม่แก้ช่องโหว่ด้วยจะขึ้น Critical (บางช่องโหว่ที่โจมตียากจะขึ้น High) อัปเดต ระดับ Critical ให้อัปเดตทันที ดู ทำไมต้องอัปเดต Plugin และ Theme
Plugin appears to be abandoned Medium หรือ Critical ไม่ได้อัปเดตมา 2 ปีขึ้นไป ถ้ามีช่องโหว่ค้างอยู่จะเป็น Critical วางแผนหาตัวแทน ถ้า Critical ให้ลบออกโดยเร็ว
WordPress core file modified High ไฟล์ Core ไม่ตรงกับต้นฉบับของเวอร์ชันนั้น เปิด View Differences ถ้าไม่มีใครแก้โดยตั้งใจ ให้ Repair แล้วหาต้นเหตุ
Unknown file in WordPress core High มีไฟล์ในโฟลเดอร์ Core ที่ไม่มีใน WordPress เวอร์ชันนี้ ตรวจว่าเป็นไฟล์ของโฮสต์ (เช่น php.ini) หรือไฟล์แปลกปลอม ไฟล์ PHP ชื่อแปลกใน wp-includes ควรสงสัยไว้ก่อน
An admin user with the username … was created outside of WordPress High มีบัญชีแอดมินที่ไม่ได้สร้างผ่านหน้า Users เช่น สร้างผ่านช่องโหว่ ถ้าไม่รู้จัก ให้ลบ เปลี่ยนรหัสผ่านแอดมินทุกคน และตรวจหาช่องทางที่ใช้สร้าง ดู User Admin หลายคนเสี่ยงอย่างไร
An admin user with a suspicious username … was found High ชื่อผู้ใช้คล้ายชื่อที่แฮกเกอร์มักสร้าง สอบถามทีมก่อน ถ้าไม่มีใครรู้จักให้จัดการเหมือนข้อบน
Option contains a suspected malware URL High ค่าในตาราง options มี URL ที่อยู่ใน Blocklist ของ Wordfence หาว่า option นั้นเป็นของ Theme หรือ Plugin ไหน แล้วลบ URL ออก ตรวจ Settings > General ว่า New User Default Role ไม่ถูกเปลี่ยนเป็น Administrator
Post contains a suspected malware URL High บทความหรือหน้ามีลิงก์ไปโดเมนที่อยู่ใน Blocklist ลบลิงก์ และตรวจว่ามีโค้ดแทรกในบทความอื่นด้วยไหม
Modified plugin file / Modified theme file Medium ไฟล์ไม่ตรงกับต้นฉบับบน WordPress.org ดู View Differences ก่อน อาจเป็นการแก้ของนักพัฒนาหรือผู้พัฒนาแก้ไฟล์โดยไม่เปลี่ยนเลขเวอร์ชัน
Web Application Firewall is disabled Critical Firewall หยุดทำงานผิดปกติ มักเกิดจากสิทธิ์ไฟล์ใน wp-content/wflogs/ กดลิงก์ Rebuild ในแถบแจ้งเตือน ถ้าไม่หาย ตรวจ File Permission
Your WordPress version is out of date High, Medium หรือ Low High เมื่อเวอร์ชันใหม่มีการแก้ด้านความปลอดภัย Medium เมื่อเป็น minor update ทั่วไป อัปเดต minor release เสมอ และทดสอบก่อนอัปเดต major release
Old WordPress core file not removed during update Low ไฟล์จาก WordPress เวอร์ชันเก่าที่ค้างอยู่หลังอัปเดต ตรวจสอบแล้วลบได้ ไม่เร่งด่วน

หลักการเรียงลำดับงานของเราคือ จัดการ Critical ที่เป็นไฟล์อันตรายและบัญชีแอดมินแปลกปลอมก่อน เพราะสองอย่างนี้บอกว่ามีคนเข้ามาในระบบแล้ว ตามด้วย Plugin ที่มีช่องโหว่ ซึ่งเป็นช่องทางเข้า จากนั้นจึงไล่ High และ Medium

ตัวอย่างไฟล์ที่ Wordfence แจ้งว่า “File appears to be malicious or unsafe”

ผลสแกนประเภทนี้ส่วนใหญ่เป็นไฟล์ PHP เล็กๆ ที่ซ่อนอยู่ในโฟลเดอร์ที่ไม่ควรมีไฟล์ PHP ตัวอย่างนี้ตัดส่วนที่ทำงานได้ออกแล้ว และเปลี่ยนโดเมนเป็นโดเมนสมมติ .example ใช้เพื่อให้จำหน้าตาได้เท่านั้น

ตัวอย่างโค้ดอันตราย · ตัดให้ใช้งานไม่ได้

1. Backdoor ที่ซ่อนในโฟลเดอร์ uploads

<?php
// wp-content/uploads/2026/09/cache-img.php
if ( isset( $_POST['k'] ) && md5( $_POST['k'] ) === '5f4d…' ) {
    $p = base64_decode( str_rot13( '…' ) );   // ถอดรหัสคำสั่งที่ส่งมา
    @eval( $p );                                // รันโค้ดที่ผู้บุกรุกส่งมา
}
// ส่งสัญญาณกลับไปที่ http://c2-panel.example/ping?h=…

จุดสังเกต: ไฟล์ PHP ในโฟลเดอร์ uploads ที่รับค่าจาก $_POST แล้วส่งต่อให้ eval หลังถอดรหัส base64_decode หรือ str_rot13 เป็นรูปแบบที่ Wordfence ตรวจหาโดยตรง ไฟล์รูปภาพที่ผู้ใช้อัปโหลดไม่มีเหตุผลต้องเป็น PHP

มักซ่อนอยู่ที่: โฟลเดอร์ปีและเดือนใน wp-content/uploads, โฟลเดอร์ Plugin ที่ถูกปิดไปแล้ว และไฟล์ที่ตั้งชื่อเลียนแบบไฟล์ระบบ เช่น wp-cache.php

False Positive ที่พบบ่อย และวิธีพิสูจน์ก่อนลบ

Wordfence ระบุเองว่าผลสแกนบางประเภทอาจไม่ใช่ปัญหาจริง กรณีที่เอกสารยกตัวอย่างไว้ (Wordfence: Scan Results, Wordfence: Scan Options) ได้แก่

  • ไฟล์ installer ที่ Plugin สำรองข้อมูลสร้างขึ้น ซึ่งมีโค้ดคล้ายมัลแวร์
  • ไฟล์ Theme ที่นักพัฒนาแก้เอง แทนที่จะใช้ Child Theme
  • ผู้พัฒนา Plugin แก้ไฟล์ในเวอร์ชันที่ออกไปแล้วโดยไม่เปลี่ยนเลขเวอร์ชัน ทำให้ขึ้น Modified plugin file
  • โฮสต์วางไฟล์ php.ini ไว้ในทุกโฟลเดอร์ของ Core หรือไฟล์ Core เก่าค้างหลังอัปเดตบน Managed WordPress

วิธีพิสูจน์ที่แม่นที่สุดคือเทียบกับ checksum ของไฟล์ต้นฉบับ WP-CLI มีคำสั่ง wp core verify-checksums ที่ดาวน์โหลด checksum ของเวอร์ชันที่ติดตั้งจาก WordPress.org มาเทียบโดยไม่โหลด WordPress (WP-CLI: wp core verify-checksums) และ wp plugin verify-checksums สำหรับ Plugin (WP-CLI: wp plugin verify-checksums)

คำสั่งตรวจสอบ · ใช้ได้จริง

2. เทียบไฟล์ Core และ Plugin กับต้นฉบับก่อนลบหรือ Repair

# เทียบไฟล์ WordPress core กับ checksum จาก WordPress.org
wp core verify-checksums

# ตรวจไฟล์และโฟลเดอร์ใน root ด้วย และเตือนถ้ามีไฟล์ที่ไม่ใช่ของ WordPress
wp core verify-checksums --include-root

# เทียบไฟล์ของ Plugin ทุกตัวที่มาจาก WordPress.org
wp plugin verify-checksums --all

# หาไฟล์ PHP ในโฟลเดอร์ uploads (ปกติไม่ควรมี)
find wp-content/uploads -type f -name "*.php"

รันใน SSH ที่โฟลเดอร์ root ของ WordPress ถ้าเว็บเป็นภาษาไทยหรือเวอร์ชันพิเศษ ให้เพิ่ม --locale และ --version ให้ตรงกับที่ติดตั้ง

ถ้า checksum ตรงกัน ไฟล์นั้นเป็นของแท้ ใช้ Ignore until file changes ได้ ถ้าไม่ตรงและไม่มีใครแก้โดยตั้งใจ ให้ถือว่าน่าสงสัย

Theme และ Plugin แบบเสียเงินที่ไม่ได้อยู่บน WordPress.org จะเทียบด้วยวิธีนี้ไม่ได้ Wordfence ก็เทียบไม่ได้เช่นกัน ทางที่ใช้ได้คือดาวน์โหลดเวอร์ชันเดียวกันจากผู้ขาย แล้วเทียบไฟล์ด้วยคำสั่ง diff -r ไม่ว่ากรณีไหน ให้สำรองไฟล์ก่อนลบเสมอ วิธีสังเกตไฟล์แปลกปลอมเพิ่มเติมอยู่ใน วิธีเช็กไฟล์แปลกปลอมใน WordPress เบื้องต้น

เมื่อ Wordfence อย่างเดียวไม่พอ

Wordfence เป็น Plugin ที่ทำงานภายใน WordPress จึงมีขอบเขตจำกัด สถานการณ์ต่อไปนี้ควรตรวจลึกกว่าผลสแกน

  • การติดเชื้อระดับเซิร์ฟเวอร์ ค่าปกติ Wordfence สแกนเฉพาะโฟลเดอร์ของ WordPress ถ้าเว็บอื่นในบัญชีโฮสต์เดียวกันติดเชื้อ หรือมี cron job ที่ผู้บุกรุกตั้งไว้ ไฟล์อันตรายอาจกลับมาหลังลบทุกครั้ง
  • Backdoor ในฐานข้อมูล Wordfence ตรวจบทความ คอมเมนต์ และ options เพื่อหา URL อันตรายที่รู้จักและเนื้อหาน่าสงสัย แต่โค้ดที่ซ่อนในตารางอื่น หรือบัญชีผู้ใช้ที่ถูกสร้างไว้ล่วงหน้า อาจไม่ตรงกับรูปแบบที่ตรวจ (Wordfence: Scan Options) ดูวิธีคิดเรื่องนี้ใน Backdoor ใน WordPress คืออะไร ทำไมล้างไวรัสแล้วกลับมาติดซ้ำ
  • Web Shell ที่เข้ารหัสหลายชั้นหรือเป็นสายพันธุ์ใหม่ ซึ่งรุ่นฟรีจะได้ลายเซ็นตรวจจับช้ากว่า Premium 30 วัน อ่านเพิ่มที่ Web Shell คืออะไร และอันตรายกับเว็บไซต์ WordPress อย่างไร
  • Firewall ถูกปิดหรือถูกแก้ ถ้าผู้บุกรุกมีสิทธิ์แอดมินหรือเขียนไฟล์ได้ ก็ปิด Plugin ได้ นี่คือเหตุผลที่ควรเปิดอีเมลแจ้งเตือนเมื่อ Wordfence ถูกปิด

ถ้าผลสแกนเจอ Critical ซ้ำหลังลบไปแล้ว หรือเจอบัญชีแอดมินแปลกปลอม ให้เริ่มจาก เว็บ WordPress โดนแฮก ต้องทำอะไรก่อน ถ้าต้องการให้ผู้เชี่ยวชาญตรวจทั้งไฟล์ ฐานข้อมูล และเซิร์ฟเวอร์ WP Doctor Thailand มีบริการ ล้างไวรัส ล้างมัลแวร์ WordPress และหลังล้างเสร็จ การตั้งค่าในบทความนี้เป็นส่วนหนึ่งของ Security Hardening ที่เราทำให้

คำถามที่พบบ่อย

Learning Mode ต้องเปิดไว้นานแค่ไหน?

ค่าเริ่มต้นคือ 7 วันหลังติดตั้ง ถ้าใช้งานเว็บครบทุกฟีเจอร์แล้ว เปลี่ยนเป็น Enabled and Protecting ก่อนได้ แต่ถ้าเว็บเพิ่งโดนแฮกหรือกำลังถูกโจมตี Wordfence แนะนำว่าไม่ควรใช้ Learning Mode

ทำ Extended Protection แล้วเว็บขึ้น Error 500 ต้องทำอย่างไร?

อัปโหลดไฟล์ .htaccess หรือ .user.ini ที่ดาวน์โหลดสำรองไว้ตอนตั้งค่ากลับไปที่ root ของเว็บ หรือลบบล็อกระหว่าง Wordfence WAF กับ END Wordfence WAF ออก แล้วรอประมาณ 5 นาทีให้ PHP อ่านค่าใหม่

Wordfence แจ้งเตือนว่าไฟล์อันตราย ลบได้ทันทีไหม?

ควรเปิดดูไฟล์และสำรองไว้ก่อน เพราะไฟล์ของ Plugin สำรองข้อมูลบางตัวอาจคล้ายมัลแวร์ ถ้าเป็นไฟล์ Core หรือ Plugin จาก WordPress.org ให้ใช้ wp core verify-checksums หรือ wp plugin verify-checksums ยืนยันก่อน

Wordfence Scan รุ่นฟรีสแกนบ่อยแค่ไหน?

รุ่นฟรีมี Quick Scan ทุกวันและ Full Scan ทุก 72 ชั่วโมง และกดสแกนเองได้ไม่จำกัด รุ่น Premium สแกนเต็มทุก 24 ชั่วโมงและกำหนดเวลาเองได้

Wordfence แจ้งเตือน Modified plugin file แปลว่าโดนแฮกไหม?

ไม่เสมอไป อาจเป็นเพราะนักพัฒนาแก้ไฟล์เอง หรือผู้พัฒนา Plugin แก้ไฟล์โดยไม่เปลี่ยนเลขเวอร์ชัน ให้กด View Differences ถ้าเห็นบรรทัดยาวที่เข้ารหัสหรือมี eval ให้ถือว่าน่าสงสัยและตรวจต่อ

ใช้ Wordfence ร่วมกับ Security Plugin ตัวอื่นได้ไหม?

ทำได้ แต่เราแนะนำไม่ให้เปิดฟีเจอร์ซ้ำกัน เช่น Firewall หรือจำกัดการล็อกอินสองที่ เพราะทำให้บล็อกผิดและหาสาเหตุยาก ดูหลักการเลือกได้ใน Security Plugin จำเป็นไหมสำหรับ WordPress

แหล่งอ้างอิง

  1. Wordfence. (2026). Wordfence Security – Firewall, Malware Scan, and Login Security. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://wordpress.org/plugins/wordfence/
  2. Wordfence. (ม.ป.ป.). Wordfence Web Application Firewall (WAF). สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://www.wordfence.com/help/firewall/
  3. Wordfence. (ม.ป.ป.). Firewall Learning Mode. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://www.wordfence.com/help/firewall/learning-mode/
  4. Wordfence. (ม.ป.ป.). Optimizing The Firewall. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://www.wordfence.com/help/firewall/optimizing-the-firewall/
  5. Wordfence. (ม.ป.ป.). Rate Limiting. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://www.wordfence.com/help/firewall/rate-limiting/
  6. Wordfence. (ม.ป.ป.). Brute Force Protection. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://www.wordfence.com/help/firewall/brute-force/
  7. Wordfence. (ม.ป.ป.). Two-Factor Authentication. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://www.wordfence.com/help/tools/two-factor-authentication/
  8. Wordfence. (ม.ป.ป.). Login Security Options. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://www.wordfence.com/help/login-security/
  9. Wordfence. (ม.ป.ป.). Scan. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://www.wordfence.com/help/scan/
  10. Wordfence. (ม.ป.ป.). Scan Options. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://www.wordfence.com/help/scan/options/
  11. Wordfence. (ม.ป.ป.). Scan Results. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://www.wordfence.com/help/scan/scan-results/
  12. Wordfence. (ม.ป.ป.). Scan Scheduling. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://www.wordfence.com/help/scan/scheduling/
  13. Wordfence. (2026). Wordfence 9.0.2 source: views/onboarding/fresh-install.php. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://plugins.svn.wordpress.org/wordfence/tags/9.0.2/views/onboarding/fresh-install.php
  14. Wordfence. (2026). Wordfence 9.0.2 source: lib/wordfenceClass.php. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://plugins.svn.wordpress.org/wordfence/tags/9.0.2/lib/wordfenceClass.php
  15. Wordfence. (2026). Wordfence 9.0.2 source: lib/wfScanEngine.php. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://plugins.svn.wordpress.org/wordfence/tags/9.0.2/lib/wfScanEngine.php
  16. Wordfence. (2026). Wordfence 9.0.2 source: lib/wordfenceHash.php. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://plugins.svn.wordpress.org/wordfence/tags/9.0.2/lib/wordfenceHash.php
  17. Wordfence. (2026). Wordfence 9.0.2 source: lib/wordfenceScanner.php. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://plugins.svn.wordpress.org/wordfence/tags/9.0.2/lib/wordfenceScanner.php
  18. WordPress.org. (ม.ป.ป.). WordPress Backups. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://developer.wordpress.org/advanced-administration/security/backup/
  19. WP-CLI. (ม.ป.ป.). wp core verify-checksums. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://developer.wordpress.org/cli/commands/core/verify-checksums/
  20. WP-CLI. (ม.ป.ป.). wp plugin verify-checksums. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://developer.wordpress.org/cli/commands/plugin/verify-checksums/
  21. The PHP Group. (ม.ป.ป.). Description of core php.ini directives. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://www.php.net/manual/en/ini.core.php
  22. The PHP Group. (ม.ป.ป.). .user.ini files. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://www.php.net/manual/en/configuration.file.per-user.php
  23. Google. (ม.ป.ป.). reCAPTCHA v3. สืบค้นเมื่อ 3 ตุลาคม 2026, จาก https://developers.google.com/recaptcha/docs/v3
อ่านบทความหลักของหมวดนี้ WordPress Security Checklist สำหรับเจ้าของเว็บไซต์

บทความอื่นในหมวดนี้

วิธีป้องกันเว็บ WordPress โดนแฮก: Checklist ที่ทำได้ทันที

ป้องกันเว็บ WordPress โดนแฮกอย่างไรให้ได้ผล อธิบายทั้งเหตุผลและวิธีทำของแต่ละมาตรการ ตั้งแต่อัปเดต Plugin, 2FA, สิทธิ์ไฟล์ ไปจนถึง Backup แบบ 3-2-1 และการดูแลรายเดือน อ้างอิง WordPress.org, NIST และ CISA

38 นาที 18 Jun 2026
อ่านต่อ
LINE ส่งปัญหา