10 วิธีป้องกันเว็บโดนแฮก [ ฉบับ Wordpress ]

10 วิธีป้องกันช่องทางที่อาจเป็นความเสี่ยง ต่อการถูก Hack Wordpress Website



1. Two-Factor Authentication

เมื่อคุณ implement two factor authentication แล้ว
ลอง login เพื่อเข้าไปยัง Wordpress dashboard จะมีการการป้อนข้อมูล
นอกเหนือจาก Username & Password ก็จะมีการ Random generated OTP (One Time Password) โดยฟังก์ชั่นการเข้ารหัสลับที่ถูกนำมาใช้ในการสร้าง OTP บวกกับมันจะถูกส่งผ่าน Gateway ที่มีความปลอดภัยไปยังผู้รับเท่านั้น และโทรศัพท์มือถือ คือสิิ่งที่นิยมกันมากที่สุดในการนำมาใช้สื่อสารของการทำ OTP

ตัวอย่างเช่น ถ้า Hacker ทำการแฮกรหัสของคุณไปแล้ว
แต่เขาจะยังไม่สามารถเข้าถึง WordPress admin panel ได้โดยไม่มี One Time Password

วิธีการ Implement Two-Factor Authentication ?

คุณสามารถเลือก OTP generating plugin มาใช้ในการทำ two-factor authentication
บน Wordpress  ทั้งตัวที่เป็น Commercial และตัวที่ฟรี ได้จาก
https://wordpress.org/plugins/tags/two-factor-authentication

..... แต่ที่แนะนำมีอยู่สองตัวที่ ฟรี และมีให้เราโหลดบน WordPress repository

Two Factor Auth Duo
Two-Factor Authentication

เรื่องการ Configure นั้นสามารถทำได้ง่ายมาก. โดยแนะนำให้ลองอ่านจาก Documentation บนหน้าเพจของ Plugin ที่ต้องการศึกษานะครับ



2. ปิดการแก้ไข Template File ผ่าน WP Dashboard




ในกรณีที่ Attacker แฮก admin user ได้
เขาจะสามารถแก้ไขไฟล์เหล่านั้นได้จาก WordPress dashboard.
ดังนั้นจึงควรป้องกันการแก้ไขไฟล์  โดยการเพิ่มโค้ดด้านล่างนี้
เข้าไปในด้านล่างสุด ของ configuration file ( wp-config.php )

define( ‘DISALLOW_FILE_EDIT’, true );




3. ซ่อน Login Error Feedback





ไปที่ Appearance > Editor ที่ไฟล์  functions.php
เพิ่มโค้ดด้านล่างนี้ไปที่ไหนก็ได้ภายในไฟล์ functions.php

add_filter('login_errors',create_function('$a', "return null;"));




4. ลบ "Admin User" ทิ้งซะ




ไปที่แถบ Users บน WordPress dashboard และลบ Admin user account ทิ้งไปซะ
หลังจากนี้ก็สามารถใช้ Admin Account ที่สร้างขึนมาใหม่  เพื่อจัดการ Dashboard เอาครับ



5.ซ่อน Version ของ Wordpress




โดยปกติ Wordpress version number จะถูกรวมอยู่ใน theme's header file ผ่าน wp-head() function.
เพราะฟังชั่นเดียวกันนั้น อาจจะถูกใช้โดยปลักอินที่ได้มีการ install ไปแล้ว
ทางเลือกที่ดีกว่า ให้แอด โค้ดด้านล่างนี้ในไฟล์ functions.php


remove_action('wp_head','wp_generator');




6. Block Access to Bots


บอทที่ว่านี้หมายถึง Tools ที่แฮกเกอร์ใช้ควบคุมเว็บไซต์ของคุณ
นอกจากนี้ยังสามารถนำทัพยากรณ์จาก Web hosting มาใช้ประโยชน์ในการจะสั่งงาน
ในการดำเนินกิจกรรมอื่น ๆ ในนามของแฮ็กเกอร์เอง

เรื่องบล็อกการเข้าถึงจาก Bot Access
ให้ไปที่ root directory ของ wordpress website
เพิ่มโค้ดด้านล่างนี้เข้าไปในส่วนท้ายสุดของไฟล์ .htaccess

SetEnvIfNoCase User-Agent ^$ keep_out
SetEnvIfNoCase User-Agent (pycurl|casper|cmsworldmap|diavol|dotbot) keep_out
SetEnvIfNoCase User-Agent (flicky|ia_archiver|jakarta|kmccrew) keep_out
SetEnvIfNoCase User-Agent (purebot|comodo|feedfinder|planetwork) keep_out
Order Allow,Deny
Allow from all
Deny from env=keep_out





7. Chmod File/Folder Permissions ให้เหมาะสม

CHMOD ไฟล์ข้อมูลทั้งหมดควรจะกำหนดให้เป็น 644
CHMOD โฟลเดอร์และโฟลเดอร์ย่อยทั้งหมดควรจะกำหนดให้เป็น 755
CHMOD ไฟล์การกำหนดค่า WordPress (WP-config.php) ควรจะกำหนดให้เป็น 640
( อ่านเรื่อง Linux Permission Commands )




8. Limit จำนวนครั้งในการ Login ของ USER



โดยใช้ปลั้กอินที่ชื่อว่า Limit Login Attempts. (Free from Wordpress plugins repository)
โดยเมื่อเปิดใช้งานปลักอินนี้แล้วก็จะสามารถจำกัดจำนวนครั้งของ failed logins ได้ดังภาพ




9. สำหรับการเข้าสู่ระบบให้ใช้ SSL Mode


เพื่อความปลอดภัยเราควรให้ Web browser ทำการ encrypts ข้อมูล Username , Password
เพื่อป้องกันการ Sniff

แต่ถ้าไม่ใช้ SSL ก็จะรู้ดีอยู่แล้วว่า..
ถ้า Hacker ใช้ Tool ที่มา Sniff (ดักอ่าน) ข้อมูลในวงแลนของเราแล้ว
ก็จะมองเห็นเป็น plain text ปกติ

ขั้นแรกเลยจะต้องมี SSL certificate ติดตั้งอยู่บน Webserver ก่อน
เพื่อบังคับให้ใช้ SSL Mode สำหรับทุกๆการเข้าสู่ระบบ
สามารถตั้งค่า SSL Login ได้ที่ WordPress configuration file (wp-config.php). บน root directory

เฉาะ admin login session เท่านั้น
define('FORCE_SSL_ADMIN', true);

เฉพาะ user login sessions เท่านั้น
define('FORCE_SSL_LOGIN', true);




10. ปิดการเข้าถึง Folder "wp-content"

รูปภาพทุกรูปและ Media ไฟล์ต่างๆที่คุณ Upload ขึ้นไปบน Wordpress Website
รวมทั้ง Plugin Files จะถูกเก็บไว้ที่โฟลเดอร์  "wp-content" เหล่านี้แหละครับ
คือเหตุผลที่ควรปิด ห้ามไม่ให้มีใครการเข้าถึงเด็ดขาด โดยไปที่ .htaccess
ยิ่งโดยเฉพาะ CSS , Javascript รวมไปถึง jpg, png , gif ที่มีความเสี่ยงสูงสุดของการที่จะถูกโจมตีโดยแฮกเกอร์


Order Allow,Deny
Deny from all
<files ?.(jpg|gif|png|js|css)$? ~>
Allow from all






Source : http://www.instantshift.com/2015/06/24/more-wordpress-security-hacks/