วิธีป้องกัน Username Enumeration ใน WordPress

วิธีป้องกัน Username Enumeration ใน WordPress
Spread the love

การดูแลความปลอดภัยของเว็บไซต์ WordPress เป็นสิ่งที่เจ้าของเว็บไซต์ไม่ควรมองข้าม โดยเฉพาะเรื่องวิธีป้องกัน Username Enumeration ซึ่งเป็นเทคนิคพื้นฐานที่แฮกเกอร์ใช้ในการหาชื่อผู้ใช้ เพื่อเตรียมการโจมตีแบบ Brute-force หรือ Credential Stuffing

บทความนี้จะพาคุณเจาะลึกถึงความหมาย อันตราย และวิธีป้องกัน Username Enumeration แบบครบเครื่อง พร้อมแนวทางปฏิบัติจริงที่คุณสามารถลงมือทำได้ทันที

🧠 Username Enumeration คืออะไร?

Username Enumeration คือกระบวนการที่แฮกเกอร์พยายามหาชื่อผู้ใช้งาน (Username) ที่มีอยู่ในระบบ WordPress เพื่อใช้ประกอบกับการเดารหัสผ่านในลำดับถัดไป

หากแฮกเกอร์รู้ Username แล้ว ครึ่งหนึ่งของการโจมตีก็สำเร็จไปแล้ว!

🔍 ช่องทางที่มักถูกใช้ในการหา Username

1. ผ่าน URL Query

ตัวอย่าง URL:

ruby
https://yourdomain.com/?author=1

หากเว็บไซต์แสดงหน้าโปรไฟล์หรือโพสต์ของผู้ใช้ ก็สามารถรู้ชื่อบัญชีผู้ใช้ได้ทันทีจาก slug

2. หน้า Login

หากระบบแสดงข้อความชัดเจน เช่น:

  • “ชื่อผู้ใช้ไม่ถูกต้อง” → แปลว่า Username ไม่มี

  • “รหัสผ่านไม่ถูกต้อง” → แปลว่า Username มีอยู่จริง

3. REST API ของ WordPress

WordPress มี REST API ที่ให้ดึงข้อมูลผู้ใช้ได้ง่าย:

bash
https://yourdomain.com/wp-json/wp/v2/users

หากไม่ได้ปิดไว้ ใครก็สามารถเข้าถึง Username ได้

🔥 ทำไม Username Enumeration ถึงอันตราย?

  • ทำให้แฮกเกอร์สามารถระบุผู้ใช้จริงได้โดยไม่ต้องเดา

  • เสริมโอกาสในการโจมตีแบบ Brute-force หรือ Dictionary Attack

  • เสี่ยงโดนยึดบัญชีแอดมิน หากรหัสผ่านไม่รัดกุม

  • ลดความน่าเชื่อถือของเว็บไซต์ในสายตาผู้ใช้

🔐 วิธีป้องกัน Username Enumeration ใน WordPress

🛠️ 1. ปิดการเข้าถึงผ่าน ?author=1

🔧 วิธีทำ: เพิ่มโค้ดใน functions.php ของธีม

php
if (!is_admin()) {
add_filter('request', function($query_vars) {
if (isset($query_vars['author'])) {
wp_redirect(home_url());
exit;
}
return $query_vars;
});
}

ผลลัพธ์: เมื่อมีคนพยายามเข้าถึง URL ?author=1 จะถูกเปลี่ยนเส้นทางกลับไปหน้าแรก

🔌 2. ใช้ Plugin ป้องกัน Enumeration

📦 ปลั๊กอินแนะนำ:

  • Stop User Enumeration

    ป้องกัน URL Enumeration และ REST API ได้ในตัวเดียว
    ดาวน์โหลดฟรีที่ WordPress.org

  • WPS Hide Login

    ซ่อน URL /wp-login.php เพื่อเพิ่มความยากในการหาหน้าเข้าสู่ระบบ

  • iThemes Security หรือ Wordfence

    มีฟีเจอร์ครบด้านความปลอดภัย รวมถึงป้องกัน Username Enumeration

✏️ 3. ปรับแต่งข้อความ Error เวลา Login

ปัญหา:

WordPress เริ่มต้นจะแสดงข้อความต่างกันเมื่อ Username หรือ Password ผิด

แนวทาง:

เปลี่ยนข้อความให้คลุมเครือ เช่น:

php
function no_wordpress_errors(){
return 'Invalid login details';
}
add_filter('login_errors', 'no_wordpress_errors');

ผลลัพธ์: ไม่ว่าจะใส่ Username หรือ Password ผิด ระบบจะแสดงข้อความเดียว

🚪 4. ปิด REST API สำหรับผู้ใช้ที่ไม่ได้ล็อกอิน

วิธีปิด Endpoint ที่ดึงชื่อผู้ใช้:

php
add_filter('rest_endpoints', function($endpoints){
if (!is_user_logged_in()) {
unset($endpoints['/wp/v2/users']);
}
return $endpoints;
});

เหมาะสำหรับเว็บที่ไม่ใช้ REST API กับบุคคลภายนอก

🔠 5. ใช้ชื่อผู้ใช้ที่คาดเดายาก

  • หลีกเลี่ยงชื่อว่า admin, editor, webmaster

  • ไม่ควรใช้ชื่อจริงของเจ้าของเว็บ เช่น somchai, sirinapa

  • ควรตั้งชื่อเช่น wp_main_user2025, siteadmin_008

🧱 เคล็ดลับเสริมความปลอดภัย WordPress

🔐 เปิดใช้งาน Two-Factor Authentication (2FA)

เช่น Google Authenticator หรือ Authy

🚫 จำกัดความพยายามเข้าสู่ระบบผิดพลาด

ใช้ Plugin อย่าง:

  • Limit Login Attempts Reloaded

  • Loginizer

🧼 ลบ user “admin” ทิ้งหลังติดตั้ง

หากยังมี admin อยู่ ให้:

  1. สร้าง User ใหม่ (สิทธิ์แอดมิน)

  2. ล็อกอินด้วย User ใหม่

  3. ลบ admin ออก พร้อมโอนโพสต์

📌 ตัวอย่างแนวทางใช้งานจริง (Checklist)

✅ รายการตรวจสอบ สถานะ
ปิด ?author=1 แล้วหรือยัง?
ติดตั้ง Stop User Enumeration?
เปลี่ยนข้อความ Login แล้ว?
ปิด REST API /users?
ใช้ชื่อผู้ใช้แบบสุ่ม?
ติดตั้ง 2FA แล้วหรือยัง?

📈 ผลลัพธ์ที่ได้จากการป้องกัน Username Enumeration

  • ลดความเสี่ยงการถูก Brute-force

  • เพิ่มความมั่นใจให้ผู้ใช้งาน

  • ทำให้เว็บไซต์ดูมีการดูแลความปลอดภัยจริงจัง

  • ช่วยให้ผ่านเกณฑ์ด้าน Security หากตรวจสอบจากองค์กรภายนอก

🎯 สรุป

Username Enumeration อาจดูเหมือนไม่ร้ายแรงในตอนแรก แต่ถือเป็นจุดเริ่มต้นที่ทำให้แฮกเกอร์สามารถเจาะระบบของคุณได้ง่ายขึ้นมาก

ด้วยการ ปิด URL ?author=1, ปรับข้อความ Login, ปิด REST API, และ ตั้งชื่อผู้ใช้ที่เดายาก — คุณก็สามารถยกระดับความปลอดภัยเว็บไซต์ WordPress ได้ทันทีภายในไม่กี่นาที

🔚 บทส่งท้าย

อย่ารอให้เว็บไซต์ของคุณถูกโจมตีจนสายเกินไป เริ่มต้นจากจุดเล็ก ๆ อย่างการป้องกัน Username Enumeration วันนี้ แล้วคุณจะปลอดภัยยิ่งขึ้นในโลกออนไลน์

หากคุณดูแลเว็บไซต์ WordPress อยู่ อย่าลืมทำตามคำแนะนำ การสอนสร้างเว็บด้วย WordPress ในบทความนี้ให้ครบ!

สบู่พิพัฒน์ กรีเซอรีนอโลเวร่า (Aloevera Bright Soap) เป็นผลิตภัณฑ์ทำความสะอาดผิวหน้าที่มีส่วนผสมจากธรรมชาติ เช่น ว่านหางจระเข้ ซึ่งช่วยลดสิว ฝ้า กระ จุดด่างดำ และกระชับรูขุมขน พร้อมเพิ่มความชุ่มชื่นให้กับผิว ทำให้ผิวเนียนนุ่มและกระจ่างใส ผลิตภัณฑ์นี้อ่อนโยนต่อผิวหน้า และเหมาะสำหรับผู้ที่มีผิวแพ้ง่าย

แท็กที่เกี่ยวข้อง

Leave a Reply

Your email address will not be published. Required fields are marked *