1. ติดตั้งด้วย prefix_table ชื่ออื่น
เวลาเราติดตั้ง WordPress ในตอนแรกเลย ตัว Installation จะถามประมาณว่า username, password และ database ที่จะใช้เชื่อมต่อนั้นมีค่าอะไรบ้าง แล้วก็มีอีก field นึงที่เขียนประมาณว่า prefixed นำหน้าตารางจะให้ใช้ชื่อว่าอะไร ตรงนี้ค่า default ที่มันมีมาให้จะเป็น
wp_ ใช่มั้ยครับ ให้เราเปลี่ยนเป็นค่าอื่นได้เช่น web_, blog_, jira_ อะไรก็ได้ตามที่เราต้องการ
เหตุที่ต้องเปลี่ยนก็เพราะมีเว็บไซต์ที่สร้างด้วย WordPress หลายเว็บใช้ค่า
wp_ ตามค่าเริ่มต้นโดยที่ไม่สนใจในส่วนนี้ จึงเป็นเป้านิ่งให้ผู้ไม่หวังดีสามารถคาดเดา และทำการไม่ดีอย่างอื่นได้
2. ย้าย wp-config.php ออกจาก directory
ผมได้อัพโหลดบาง slide ที่เกี่ยวกับเรื่องของ
WordPress Customization ไปเมื่อเดือนที่แล้ว ซึ่งมี slide นึงที่เขียนเกี่ยวกับการป้องกันไฟล์
wp-config.php ให้ปลอดภัยจากบุคคลภายนอก และผู้ไม่หวังดี แล้วก็มีคนสอบถามเข้ามาเยอะให้เขียนเรื่องนี้ให้ละเอียด จึงเก็บมาเขียนในหัวข้อนี้ครับ
โดยปรกติแล้วไฟล์
wp-config.php จะอยู่ที่ root directory เช่นเดียวกับพวก wp-contents, wp-admin และ wp-includes ใช่มั้ยครับ เราสามารถย้ายไฟล์
wp-config.php ออกมาจาก root directory ได้หนึ่งขั้นโดยที่ WordPress เองก็ยังสามารถมองเห็นแล้วก็อ่านค่าภายในได้ ยกตัวอย่างเช่น เว็บไซต์ WordPress ของคุณตั้งอยู่ใน blog directory โดยเข้าผ่าน
www.example.com/blog
เมื่อจัดการไฟล์ด้วย FTP client เราก็จะเห็นไฟล์ wp-config.php อยู่ใน blog directory ด้วย ซึ่งการย้ายก็คือให้เราลากไฟล์ดังกล่าวขึ้นมาจาก directory นั้นหนึ่งขั้น เพียงเท่านี้ไฟล์ wp-config.php ของเราก็ปลอดภัยในระดับหนึ่งแล้ว
3. ป้องกันการเรียก wp-config.php จากภายนอก
วิธีที่ง่ายอีกวิธีหนึ่งคือการตั้งค่าให้กับ web server อย่าง Apache, NGINX ให้ป้องกันการเรียกไฟล์
wp-config.php โดยตรงจากภายนอก ก่อนอื่นให้เราทดลองง่ายๆด้วยการกรอกชื่อเว็บไซต์ของตัวเองแล้วตามด้วย /wp-config.php อย่างเช่น<blockquote>www.example.com/wp-config.php</blockquote>ถ้า หากเป็นหน้าขาวๆ ไม่แสดงข้อความอะไร ก็แสดงว่าไฟล์ wp-config.php ของเราอาจจะได้รับอันตรายจากผู้ไม่หวังดีได้ โดยการป้องกันนั้นก็ให้เพิ่ม
<files wp-config.php>
order allow,deny
deny from all
</files>
เข้าไปที่ไฟล์ .htaccess สำหรับ Apache webserver หรือ เพิ่ม code ด้านล่างนี้เข้าไปที่ server block ของ NGINX ก็จะช่วยได้ครับ
location = /wp-config.php { deny all; }
4. ตั้งค่า Secret Keys
Secret Keys นี่ถือเป็นกุญแจอีกข้อนึงที่ใครหลายต่อหลายคนมองข้ามไปครับ นอกจากการปรับแต่ง WordPress ให้มีความปลอดภัยในระดับนึงตามข้อที่เขียนมาทั้งหมดแล้ว การตั้งค่ารหัสผ่านในการเข้า wp-admin ของเราก็สำคัญไม่แพ้กัน ลูกค้าบางคนของผมนี่ตั้งค่ารหัสแบบน่าตีมากเลยเช่น “
123456“, “
password“, “
abcabcabc” ซึ่งรหัสง่ายๆ พวกนี้มักจะอยู่ในฐานข้อมูลของ hacker อยู่แล้ว ซึ่งเวลาที่จะถูกโจมตีเว็บไซต์ก็มักจะสุ่มรหัสพวกนี้เข้ามาทั้งนั้น นอกจากการตั้งค่ารหัสให้ยากต่อการจดจำ หรือโจมตีแล้ว การใส่ secret keys ของ WordPress ยังช่วยในเรื่องของการเข้ารหัสข้อมูลผ่าน cookie บน web browser ด้วย ซึ่งใครหลายคนอาจจะถามว่ามันดี และจำเป็นแค่ไหน
เว็บไซต์ของ WordPress เองบอกเลยว่า ถ้ารหัสผ่านที่ใช้ถูกเข้ารหัสตาม secret keys แล้ว ผู้ไม่หวังดีจะใช้เวลานานขึ้นกว่าเดิม ซึ่งอาจจะใช้เวลาเป็นเดือน หรือปีในการถอดรหัสดังกล่าว วิธีทำก็ไม่ได้ยากอะไรเลยเพียงเข้าไปที่เว็บไซต์
generate secrets keys นี้ แล้วคัดลอกข้อความที่ได้ไปวางไว้ในไฟล์ wp-config.php ในบริเวณบรรทัดที่ 45 เป็นต้นไปครับ
5. อัพเดทเวอร์ชั่นของ WordPress อย่างสม่ำเสมอ
ข้อสุดท้ายนี่ถือเป็นเรื่องที่ง่ายที่สุด แต่ส่วนใหญ่กว่า 70% มักจะไม่สนใจครับ พึงระลึกไว้เสมอว่าเวอร์ชั่นใหม่ที่ถูกป้อนเข้ามาจากผู้พัฒนา
WordPress คือการปกปิดจุดโหว่ในด้านของความปลอดภัย บางครั้งเพิ่ม performance เรื่องของความเร็ว และความสวยงามเข้ามาด้วย ยิ่งเว็บไซต์เราขาดการอัพเดทเวอร์ชั่นใหม่มานานเท่าไหร่ ก็ยิ่งมีโอกาสที่จะถูกโจมตีจากผู้ไม่หวังดีได้ง่ายครับ
ที่มา:
https://www.jir4yu.me/2015/improve-wordpress-security/