1 user ที่เป็น Administrator ก็ไม่ควรตั้งชื่อเป็น admin, administrator, root etc
2 plugin กับ themes ต้อง download จาก site ที่ไว้ใจได้เท่านั้น (แต่ก็มีหลุดมาได้เยอะ นั่นคือ ก็ไม่ปลอดภัย 100%)
http://wordpress.org/extend/themes/
http://wordpress.org/extend/plugins/
3 ถ้าใช้ premium plugin หรือ themes ก็ให้โหลดจากเจ้าของโดยตรงเท่านั้น
4 ตั้งรหัสให้ ยากต่อการคาดเดา ปกติแฮกเกอร์จะมีชุด user / pass ที่คนทั่วไปนิยมใช้
5 directories permissions ที่เหมาะสม 755 และ files permissions ที่เหมาะสม 644
6 update wordpress, plugin, themes ให้สม่ำเสมอ ธีมเก่าที่ไม่ได้อัพเดท หรือ เขียนเอง แล้วไม่พัฒนา เวลาผ่านไปจะมีช่องโหว่ ที่ถูกเจาะได้ จะเห็นได้ว่า wordpress มีการปรับปรุง เพิ่มเติม ยกเลิก code ต่างๆด้วย สำหรับ การใช้งานธีม
7 อย่าใช้ warez, null, crack สำหรับ plugin กับ themes เว้นแต่คุณแน่จริง แกะโค๊ดได้
8 ไม่จำเป็นอย่าใช้ Plugin เพราะ ยิ่งใช้เยอะยิ่งเสียงสำหรับการถูกแฮกจาก แต่ละ plugin และบาง plugin ไม่อัพเดท ไม่ควรใช้ เวลาผ่านไปมี bug และ ช่องโหว่
9 plugin ที่ไม่ใช้ให้ถอนทิ้ง
10 ธีมที่ไม่ใช้ให้ถอนทิ้ง เหลือไว้สักธีมที่เป็นของ wordpress
11 เปลี่ยน table_prefix ก็เปลี่ยนจาก wp_ เป็นอย่างอื่น
12 ใช้ sFTP แทน FTP (Hosting ทั่วไปเปิด) ถ้าใช้ FTP เวลาส่งค่า ดักจับรหัสไปได้
13 ควร coding Theme แทนการใช้ plugin ระบบปลอดภัยกว่า เร็วกว่า
14 ใช้ Hosting คุณภาพ มีคนที่มีความรู้ดูแล ไม่ใช่ถูกอย่างเดียว อาจมีเสียวตอนหลัง ชื่อเสียงด้าน hosting จึงเป็นสิ่งสำคัญ
15 ป้องกันการเข้าถึงโฟล์เดอร์ wp-admin โดยการสร้างไฟล์ .htaccess
16 ตั้งค่าไฟล์ Config ป้องกันการโดนแฮก
17 ตั้งระบบพิเศษเพิ่ม เว็บที่มีความเสี่ยงถูกเจาะ เช่น หากจะเข้าหลังบ้าน (CP admin หรือ CP Directadmin) ต้องผ่านระบบความปลอดภัย รหัสอีกชุดแยกกัน โดยอาจตั้งค่า .htaccess
18 ถ้ามีงบพอ ควรใช้ VPS แทน Server Shared Hosting เมื่อคนอื่นถูกแฮค จะไม่โดนด้วย
วิธีง่ายๆ ใช้ Plugin
Wordfence Security – Firewall & Malware Scan
https://th.wordpress.org/plugins/wordfence/
Hacker ใช้วิธี Brute Force Attack สร้าง BOT เพื่อล็อกอินเข้าเว็บ WordPress ด้วยการสุ่มเดารหัสผ่าน
Limit Login Attempts
Plugin จำกัดการ login ต่อ 1 ip หากใส่รหัสผิดเกิน 3 ครั้ง ระบบจะแบนการล็อกอินที่มาจาก IP นั้น 24 hr
มันยังแสดง IP ให้เราเห็นด้วยว่า การล็อกอินที่ใส่รหัสผิดนั้นมาจาก IP อะไร
ปกติ Hacker จะมี Bot อยู่ด้วยกันหลายไอพี ต่อให้ IP โดนแบนก็ใช้ IP ใหม่ ล็อกอินสุ่มเข้ามาได้อีกเรื่อยๆ
Wordfence Security
Wordfence มันอาจจะกินทรัพยากรมาก อาจเปิดไว้ตอนจะ scan (ใช้ Jetpack แทน)
มีระบบแจ้งเตือนการล็อกอิน ส่งให้เราทางอีเมล์
Jetpack
Jetpack by WordPress.com ในส่วนของ Security นี้ Jetpack ก็จะมีให้เราตั้งค่า Prevent brute force attacks ด้วย
แต่เห็น เขาว่าตัวนี้หนักโฮสต์
ต้องมี Account ของ WordPress.com ก่อน และทำการเชื่อมต่อ เว็บกับ WordPress.com จึงใช้งานได้
Invisible reCaptcha for WordPress
Google Captcha
Google Captcha (reCAPTCHA) by BestWebSoft
โดยสามารถ Login form , Registration form , Reset password form , Comments form และ Contact Form
ต้อง ทำการ Authentication ก่อน โดยการ Register กับ Google เพื่อนำ “Site Key” และ “Secret Key” มาใช้ (ในหน้า Setting จะมีลิงค์ให้คลิกไป register)“
Lockdown WP Admin
ทำให้เราเปลี่ยนหน้า Login จากปกติ คือ /wp-admin/ เป็น /xxx/ ได้
กดช่อง “Hide WP Admin” แล้วทำการตั้งค่า WordPress Login URL ใหม่
แม้เปลี่ยนชื่อ Login สุดท้ายหาก Hacker จะล็อกอินผ่าน /wp-login.php/ แทนได้อยู่ดีเพราะไฟล์ login วิ่งมาที่นี่ – -”
ใช้ VestaCP เป็น Control Panel จะไม่จำเป็นต้องมี Folder ใดเป็น 777 เลย และจะเอาไฟล์มาฝังได้ยาก
การ Block IP หรือ จำกัด อนุญาต ให้สิทธิ์
ให้ Block IP ตั้งแต่ระดับ Hosting การกำหนดสิทธิ์ให้เข้าหลังบ้าน (wp-login.php)และ ต้องมาจากประเทศที่ตั้งไว้เท่านั้น
deny all and allow only for a single IP ที่ folder wp-admin (หรือ อาจจระบุไฟล์ไปเลยก็ได้ ว่าไฟล์นี้สำหรับ ip นี้เท่านั้น เพราะไฟล์นี้อยู่ที่ root)
<IfModule> Require ip #.#.#.# Deny from all ErrorDocument 403 /index.php Order Allow,Deny Allow from #.#.#.# </IfModule>
<Files wp-login.php> Order deny,allow Deny from all Allow from #.#.#.# </Files>
ทดสอบแล้วใช้ได้
ErrorDocument 403 http://www.vir9.com Order deny,allow Deny from all Allow from xxx.xxx.xxx.xxx
ตรวจสอบ ip
https://whatismyipaddress.com
https://stackoverflow.com/questions/4400154/deny-all-allow-only-one-ip-through-htaccess http://www.thaiseoboard.com/index.php/topic,85990.0.html
ป้องกันการเข้าถึงโฟล์เดอร์ wp-admin โดยการสร้างไฟล์ .htaccess
โฟล์เดอร์ wp-admin เข้าถึง Dashboard (ส่วนควบคุมของ WordPress ) เข้าถึงได้เมื่อใส่ User + Password
การกำหนดอนุญาตเฉพาะ IP ให้มีสิทธิ์เข้าถึงโฟลเดอร์ wp-admin ได้ แม้ Username และ Password ถูกต้อง แต่ IP ไม่ตรงกับที่กำหนดไว้ ก็ไม่สามารถเข้าถึง Dashboard ได้ หาก admin ใช้ IP ที่เปลียนตลอดเวลา เช่น IP เน็ตบ้าน,มือถือ จะกำหนดได้ยากขึ้น
สุดท้ายอาจต้องใช้วิธี upไฟล์ชดชุด allow และ deny ในช่วง เข้า Admin CP
สร้างไฟล์ .htaccess โดยการกำหนด IP แล้วใส่โค้ด…
<LIMIT GET> order deny,allow allow from xxx.xxx.xxx.xxx deny from all </LIMIT>
อัพโหลด.htaccess โฟล์เดอร์ wp-admin
deny from all คือ ปฏิเสธการเข้าถึงจากทุก ๆ IP ที่ไม่ตรงกับ allow from
https://www.wordfence.com/docs/how-to-clean-a-hacked-wordpress-site-using-wordfence/ http://ctrlq.org/code/19247-password-protect-wordpress-admin https://help.dreamhost.com/hc/en-us/articles/214820158-Hacked-WordPress-site-overview
วิธีตั้งค่าไฟล์ Config ป้องกันการโดนแฮก
หลังจากอัพโหลดไฟล์ของ WordPress ขึ้นสู่โฮสสมบูรณ์แล้วให้ตั้งค่าดังนี้
1. เปิด wp-config.php
2. ตั้งค่า DB_NAME , DB_USER , DB_PASSWORD ให้ครบ
3. หาคำว่า Authentication Unique Keys and Salts ในไฟล์ wp-config.php
4. เข้าเว็บ https://api.wordpress.org/secret-key/1.1/salt/ (หรือมองหา URL ในไฟล์ก็มี) เพื่อเอา KEY มาใส่
5. Copy Key จากเว็บนั้นมาใส่(เว็บจะ Random Key มาให้ ไม่มีทางซ้ำกัน)
6. Save ไฟล์ อัพโหลดขึ้น Host
หมายเหตุสำคัญ
เคสที่โดนๆ กันทุกวันนี้ มาจากช่องโหว่ใน server เอง!
ถ้า Hacker เจาะเว็บไซต์ไหนได้ ก็จะแพร่ไปทั้งเครื่อง (สำหรับ Share Host) ใครอยู่เครื่องเดียวกัน ก็โดนไปด้วย
และไฟล์ wp-config.php ของคุณ ก็จะถูก script สูบไปกองรวมกัน นั่นหมายความว่า hacker จะเก็บรหัสผ่านของคุณไว้ด้วย
วิธีรับมือ
1. หา host ชั้นดี ถ้าเป็นไปได้ หา host ที่มีคนร่วมชะตากรรมน้อยๆ วิธีหาก็อาศัยเว็บ
http://www.yougetsignal.com/tools/web-sites-on-web-server/
มันสามารถบอกได้ว่า server เครื่องนั้นยัดกันอยู่กี่เว็บ (ปกติก็หลักร้อย) อย่างน้อยก็ประมาณการ
2. backup บ่อยๆ
3. วันใดโดน hack ถ้า server กลับมาพร้อมใช้งานอีก ให้เปลี่ยนรหัสให้หมด
4. เตรียมตัวโดนใหม่อีกรอบ ถ้ายังไม่แก้ทั้งหมด
5. โดนบ่อยๆ หนีไปเช่า vps
จับ vps แล้วทำไงต่อ .. ถ้าเว็บคุณโดน hack แล้วปลีกวิเวก หนีมาใช้ vps
เว็บไหนโดน hack โดนฝัง shell มันจะสามารถทะลุถึงเว็บได้ทั้งเครื่อง
และไฟล์ config สำคัญของ cms ทั้งหลายจะโดน copy มากองรวมกัน ซึ่งหมายความว่า password ก็จะถูกดูดไปด้วย
และถ้า admin ลง server แบบเดิมๆ มีเว็บเดิมๆ plugin เดิมๆ (ที่มันรั่ว) hacker ก็กลับมาได้อีก
เช่า vps ใช้ คนเดียว
ถ้าทำเองได้ใช้ unmanaged vps ราคาเมืองนอก ถูกมากๆ แต่ลูกค้าจัดการเองหมด ถ้าไม่เป็นก็จ้าง
ราคา vps ที่เช่าไป ปีละ 700 บาท ก็มี
1024MB RAM
2048MB Burst
3 CPU Cores
50GB Diskspace
2000GB Bandwidth
1Gbps Port Speed
spec นี้เหลือเฟือสำหรับการใช้เว็บรายเดียว แต่ต้อง config เป็น ไม่งั้นคนเข้ามากๆ ซดแรมหมด
ไปหาคู่มือการตั้ง server ได้ตามเว็บบอร์ด linux ทั่วไป
(การจ้างคือการหาใครสักคนช่วยย่นเวลาแก้ปัญหาให้คุณ)
งบน้อย ต้องใช้ความพยายามมาก ศึกษามาก และใช้เวลามาก หากคุณมีความสามารถทำได้ คุณก็ต้องจ่ายด้วยเวลาและความยุ่งยากอยู่ดี ก็เลือกเอา
ฝัง Shell ก็กระโดดข้ามมาไม่ได้ เพราะปิดการบายพาส ip/~user
ถ้าเว็บโดนแฮก ไม่แก้ไข ย้ายไป Vps ก็ไม่ช่วยอะไรขึ้นมา
Unmanaged เมืองนอก ถูกๆ Oversell เยอะมาก ล่มมาก็หนักพอๆกับ โดนแฮค บางที่ Burst Ram เยอะดี แต่พอใช้เข้าจริงๆ พอชั่วโมง Peak มันก็ Peak กันทุก IP ไม่สามารถ Burst ได้ หาพวกที่ไม่ Oversold ยาก เช่า Dedicated สเปคต่ำๆ ราคาก็แพงกว่า VPS นิดแต่ก็ OK
มันอยู่ที่ สคิปที่คุณใช้ด้วย ถ้าใช้สคิปที่รั่ว สคิป null โหลดฟรี ธีมโหลดฟรีทั้งหลายก็เตรียมใจรอไว้ก่อนเลย ทำหน้า welcome hacker ไว้เลยก็ดี 555+
การย้ายไปเป็น vps เอง ไม่ใช่ทางออกที่ดีเท่าไหร่ เพราะเราเซตเองก็ไม่ได้หมายความว่าเซตเองแล้วจะปลอดภัย
ทุกอย่างมีรูรั่วหมด ตั้งแต่ ระบบ network switch router, os, apache, nginx, phpmyadmin, cpทั้งหลาย, cms ทั้งหลาย ปลั๊กอินทั้งหลาย Theme ส่วนเสริมต่างๆ การ coding ที่ไม่ปลอดภัย ผิดหลัก เครื่องคอมพิวเตอร์ที่คุณใช้ อาจะมีไวรัส โทรจัน โปรแกรม FTP อาจมีช่่องโหว่ ฯลฯ มันจึงอยู่ที่ว่าจะโดนส่วนไหนเท่านั้นเอง
ถ้า admin ไม่เป็น ไม่อยากศึกษาเอง เพราะเกิดมาทำเว็บ ไม่ได้มาเป็น admin
คิดแบบนี้ก็ถูกแล้วครับ เข็มมันต้องแหลมด้านเดียว
เก่งทุกอย่าง มันคงต้องสะสมบารมีเหมือนพระเจ้าสิบชาติ
ชาติแรก linux
ชาติที่สอง php
ชาติที่สาม css
ชาติที่สี่ framework
ก็ให้เช่า vps แบบที่เขามี support
ใช้ให้คุ้ม มีปัญหาอะไรก็บอกเขา เพราะใช้บริการแล้วมัวแต่เกรงใจเขามันก็ไม่ดีกับเรา
สรุปว่า ตอนนี้เราจะใช้ละ จะ unmanaged หรือ managed ก็แล้วแต่
unmanaged ก็ถูกหน่อย แบบ High Risk High Return managed ก็อุ่นใจ ไปอีกแบบ
เมื่อได้ vps มาแล้วทำดังนี้
1. ปิด ftp เข้าทาง ssh อย่างเดียว ด้วยโปรแกรม winscp
เข้าไปแล้วก็คล้ายๆ หน้าจอ โปรแกรม ftp แต่มันใช้โปรโตคอล ssh ซึ่งมีการเข้ารหัสข้อมูล
2. ปิด phpmyadmin เพราะ hacker ชอบเข้าทางนี้
วิธีปิดก็คือ ลบ alias ทิ้ง หรือ shell เข้าไปลบ softlink ทิ้งไปเลย
ถ้าจะใช้ก็สร้าง alias หรือ สร้าง softlink ขึ้นมาใหม่
ใน vps เราปิด phpmyadmin เองได้
phpmyadmin เกี่ยวไรกับการ hack
มันมีวิธีเข้าเว็บได้แบบไม่ต้องใช้ password และถ้าเข้าไป run query ได้ ก็จะสามารถให้ output ของ query เป็น php สักตัว ก็เป็นไปได้ ถ้า php ไฟล์นั้นคือ shell เมื่อนั้นเครื่องเราก็จะถูกยึด
ข้อควรระวัง ไม่ว่าจะใช้ host แบบไหน
– ตั้งรหัสผ่าน อย่าให้สั้น ง่าย
– เลี่ยงการเขียนโปรแกรมขึ้นมาเอง โดยเฉพาะแนว sql มีโอกาสจะโดนเจาะผ่าน sql มาก ถ้าจำเป็นก็ใช้พวก php framework ซึ่งไม่ได้ใช้ sql โดยตรง
– ระวังการใช้ plug-in ใน cms โดยเฉพาะ joomla แต่wordpress ค่อนข้างปลอดภัย แต่ให้ระวัง plugin
– backup ข้อมูลออกมานอกเครื่องอย่างสม่ำเสมอ
ห้ามเด็ดขาดคือ backup แล้วใส่ใน folder ที่ออก www ได้
หมูหวาน hacker เลย
ถ้าสูบ backup ได้ ก็คือเสียเว็บนั้นไปแล้ว
วิธีลดความเสี่ยง อาจจะต้องใช้ cloud, ทำ mirror site
ชื่อ cloudflare ให้จินตนาการถึง ระบบ cloud ซึ่งอาศัย server เป็นฝูงๆ มาช่วยกันประมวลผล
บริการจาก cloudflare เป็นของฟรี ทำงานเหมือน dns ล่อเป้า ซึ่งได้ผลกรณีที่ server โดนรุมยิง
cloudflare จะกลั่นกรองข้อมูลแบบปกติ แล้วส่งต่อไปให้ server ตัวจริงเท่านั้น ที่มาร้ายๆ โยนทิ้งหมด
แต่ ระบบ Cloud ของนอกส่วนมากก็ใช้ Onapp ลดต้นทุน ช่วยป้องกันล่มได้ส่วนหนึ่ง แต่ไม่ได้ป้องกันโดนแฮค
ถ้าเป็น wp + plugin + theme ส่วนมากจะโดนเข้ามาทางสคริป และจาก host ที่ไร้คุณภาพ คนดูแลไม่เก่งตั้งค่าไม่เป็น คือ ไม่ได้เก่งด้าน security ศาสตร์ด้านนี้แยกไปอีกแขนง ไม่ใช่ทุกคนจะเก่งทุกด้าน
อย่าใช้ของปลอม Null-script หรือสคริปบัคเยอะ ป้องกันได้ดีที่สุด
ปิด service Hosting control panel เมื่อใช้งานเสร็จ
รหัสผ่านจาก cpanel ถูกดูดมากองรวมกัน
โดนทุกคนครับ มากบ้างน้อยบ้าง wpมันมีรูรั่ว
มี10เว็บโดนไป9 ตอนนี้เลยใช้ html ทำเอา สบายใจดี ไม่มีโดนแฮก
ติดตั้งปลั๊กอินที่รักษาความปลอดภัยครับ ของ wordpress แก่นหลักๆ
นอกนั้นก็ …
ลบปลั๊กอินที่ไม่ค่อยใช้
ใช้ Long password เปลี่ยนทุก 72 ชม
เลือก hosting ที่มีการรักษาความปลอดภัยชั้นครู พวก hostgator มันจะมีส่วนเสริมให้ซื้อ
แบ็กอัพอยู่ตลอดเวลา ตรงสามารถใช้ปลั๊กอิน อย่าง Updraftplus
ติดพวก Cloud Cdn
ติดพวกปลั๊กอิน Security ดังๆ เช่น iTheme ของ wordpress
plugin ก็เลือกใช้เฉพาะที่มีจำนวน Download สูงๆ อย่าไปใช้ plugin ที่ outdated หรือมี review แย่ๆ