วิธีป้องกัน Brute Force Attack สำหรับ Wordpress

เนื่องจาก Wordpress เป็น CMS ที่เป็นที่นิยมมากในปัจจุบันจึงทำให้ตกเป็นเป้าของเหล่า Hacker ที่พยายามหาทุกวิถีทางเพื่อที่จะเจาะเว็บไซต์ Wordpress ซึ่งวิธีนึงที่พบบ่อยอันดับต้นๆ คือการโจมตี Brute Force หรือเรียกง่ายๆ ว่าการสุ่มรหัสผ่านครับ และด้วยปัจจุบันขณะนี้ผมเขียนเรื่องนี้นี้ 25/9/2015 ตัว Wordpress เองยังไม่มีระบบป้องกันการโดนสุ่มรหัสผ่าน ผ่านการ Login ผิดเกินกว่าจำนวนครั้งที่ตั้งไว้ ซึ่ง Worpdress ควรจะมีระบบระงับ IP ปิดไม่ให้สุ่มรหัสผ่านเพิ่ม แต่ดันยังไม่มี เราจึงต้องหาแนวทางป้องกันกันเองไปก่อน จนกว่า Wordpress เองจะมีระบบป้องกันในส่วนนี้ ผมคิดว่าในอนาคตคงมีครับ

ผู้ใช้หลายคนบอกว่าไม่เห็นจำเป็นต้องป้องกันการสุ่มรหัสผ่านเลย แค่เราตั้งรหัสผ่านยากๆ ก็สุ่มไม่ได้แล้ว ผมเห็นด้วยกับความคิดเห็นนี้ครับ แต่ไม่เห็นด้วยว่าควรเพิกเฉย จริงครับที่ตั้งรหัสผ่านที่คาดเดาได้ยากจะสุ่มไม่ได้ แต่การที่ Hacker ใช้ Botnet สุ่มรหัสผ่านเข้ามาจำนวนมาก ทุกครั้งที่เกิดการ Login ตัว Wordpress เองจะสั่งให้ Login Script ไป Query เช็ครหัสผ่านในตารางฐานข้อมูลทำให้เกิดการทำงานของ CPU และ RAM ส่งผลให้การที่โดนสุ่มล็อคอินมากๆ ระดับหลายพันครั้งต่อนาทีจะทำให้ Web ช้าลง.....ช้าลง เพราะ Wordpress มัวแต่วุ่นไปประมวลผลการ Login ของ Hacker ครับ สำหรับ Server ที่ตั้งค่าการจัดการทรัพยากรระบบได้ไม่ดีบางครั้งอาจทำให้ Server ล่มได้เลยทีเดียวครับ

และผมยังพบว่าผู้ใช้บางท่านแจ้งว่าก็ใช้ Plugin พวก Limit Login ป้องกันก็ได้ ผมเห็นด้วยกับความคิดนี้ครับ แต่ก็ยังไม่พ้น Web โหลดหนักจากกรณีโดยสุ่มจำนวนมากอยู่ดี เพราะ Plugin ก็เป็นพัฒนาด้วย php ทำให้ยังมีการทำงานบน PHP Layer และการ Query Database อยู่ ถึงแม้จะตั้งว่า Login เกิน 3 ครั้ง IP ถูก Block แต่ Hacker มืออาชีพส่วนใหญ่มี Botnet ในมือจำนวนหลายพันหลายหมื่น IP ครับ กว่าจะ Block IP ทั้งชุดหมด ก็โดนสุ่มไปเป็นแสนครั้งแล้วครับ ระหว่างนั้นก็เว็บอืดไปก่อน แถม log ของ IP ที่ถูก Block หากทิ้งไว้นานๆ ก็จะมีขนาดใหญ่มากเปลืองพื้นที่จัดเก็บไปอีกครับ

เข้าเรื่องครับ ท่านใดเอาเนื้อๆ เริ่มตรงนี้
วิธีการ Block ที่ได้ผลและมีประสิทธิภาพ จริงๆ ควรใช้ HTTP Authentication ครับ เริ่มด้วยการ

1. เพิ่ม Code นี้แทรกเข้าไปในไฟล์ .htaccess ของ Wordpress

# Protect wp-login
<Files wp-login.php>
AuthUserFile /home/user/domains/yourdomain.com/public_html/.htpasswd
AuthName "Private access"
AuthType Basic
require valid-user
</Files>


2 จากนั้นไปที่เว็บ
http://www.htaccesstools.com/htpasswd-generator/

ทำการกรอก Username ตามชื่อพร้อมรหัสผ่านที่ต้องการ จากนั้นกดปุ่ม Create

3. เมื่อได้ code มาให้สร้างไฟล์ .htpasswd แล้วนำ code จากข้อ 2 บันทึกไว้ในไฟล์นี้ครับ

4. ทำการ Upload ไฟล์นี้ไปไว้ใน Directory เดียวกับไฟล์ .htaccess ในข้อ 1 สังเหตุบรรทัดสีแดงในข้อ 1 ครับให้เปลี่ยนตาม system directory ของท่านที่ใช้งาน จากนั้นทดลอง Login ดูได้เลยครับ จะพบว่ามีหน้าต่างให้ Login แสดงขึ้นมาอีกชุด ถือเป็นอันเรียบร้อยครับ

การ Login ลักษณะนี้ไม่ได้ทำงานบน PHP Layer และไม่มีการใช้งาน Database ทำให้ใช้ทรัพยากรระบบน้อยกว่ามากครับ จะสุ่มมาเป็นแสนๆ ครั้งก็ไม่เป็นไร
ถ้า Hacker จะเอาให้ได้ก็ต้องสุ่มรหัสผ่านนี้ก่อน จึงจะเจอหน้า Login ของ Wordpress แล้วเข้าไปสุ่ม Wordpress อีกรอบ จากประสบการณ์หากทำ HTTP Authentication ดักไว้ถ้า hacker botnet ผ่านมาเจอเข้าก็จะจากไปทันที ไม่เสียเวลาทำ Brute force ครับ

  • 0 Users Found This Useful
Was this answer helpful?

Related Articles

แก้ปัญหา WP SuperCache ขึ้น File name too long

หากพบปัญหา wp-supercache เกิด error เนื่องจาก URL permalink เป็นภาษาไทยยาวจน wp-supercache...

วิธีการติดตั้ง Wordpress

Wordpress คือ Content Management System (CMS) เป็นระบบเว็บสำเร็จรูปที่มีความสามารถในการสร้าง...

วิธีการเปลี่ยน Wordpress Theme

สำหรับผู้ที่ไม่ทราบว่าจะหา Theme สวยๆ มาใช้งานได้จากไหน คุณสามารถหา Wordpress Theme ฟรี สวย...

วิธีการติดตั้ง WordPress ผ่านระบบติดตั้ง Script อัตโนมัติ

คุณสามารถติดตั้ง WordPress ผ่านระบบติดตั้ง Script อัตโนมัติ โดยคุณต้องทำการ Login เข้าสู่ระบบ...

วิธีเปลี่ยน URL ของ WordPress ให้เป็นภาษาไทยแบบไม่โดนตัดคำ

PP Auto Thai URL เป็นปลั๊กอินที่จะช่วยแก้ปัญหาให้กับเจ้าของเว็บไซต์ที่ทำด้วย WordPress ภาษาไทย...