วิธีจัดการกับเว็บไซต์ WordPress ที่ถูกแฮ็ก

ในบทความนี้ เราจะพูดถึงประเภทของการแฮ็ก WordPress ที่พบบ่อยที่สุด วิธีระบุปัญหาเหล่านั้น และวิธีการต่างๆ ในการแก้ไข หากคุณพบปัญหาดังกล่าว เราขอแนะนำอย่างยิ่งให้ติดต่อผู้พัฒนาเว็บไซต์มืออาชีพเพื่อขอความช่วยเหลือเพิ่มเติม สำหรับคำแนะนำเพิ่มเติมเกี่ยวกับการเพิ่มความปลอดภัยให้กับบัญชีโฮสติ้งของคุณ โปรดดูที่ คู่มือนี้.

สำคัญ: ก่อนทำการเปลี่ยนแปลงใดๆ ให้สร้างข้อมูลสำรองเว็บไซต์ของคุณแบบเต็มก่อน 

โปรดทราบ: เพื่อลดความเสี่ยงจากการแฮ็ก WordPress ในอนาคต ให้ สแกนบัญชีโฮสติ้งของคุณ ด้วยเครื่องมือแอนตี้ไวรัสเป็นประจำ ลบไฟล์ที่เป็นอันตรายหรือไฟล์ต้องสงสัย และอัปเดตปลั๊กอินและธีมของเว็บไซต์ให้เป็นเวอร์ชันล่าสุดเสมอ

  1. ไฟล์เริ่มต้นหายไป

  2. วิธีแทนที่ไฟล์ WordPress ที่หายไป

  3. วิธีแทนที่ไฟล์ WordPress เริ่มต้นทั้งหมด

  4. ไฟล์ธีมหรือปลั๊กอินหายไป

  5. การเปลี่ยนเส้นทางที่เป็นอันตราย

ไฟล์เริ่มต้นหายไป

แม้จะมีปัญหาหลายอย่างที่อาจทำให้ไฟล์เริ่มต้นหายไปหรือถูกเปลี่ยนแปลง แต่สาเหตุที่พบบ่อยที่สุดคือมัลแวร์ที่ถูกฝังใน WordPress ของคุณ โชคดีที่เครื่องมือแอนตี้ไวรัสบนเซิร์ฟเวอร์เว็บและโฮสติ้งของเราสามารถตรวจจับและกักกันไฟล์ที่ถูกบุกรุกโดยอัตโนมัติ

หากไฟล์หลักของ WordPress ของคุณติดไวรัส คุณอาจพบอาการดังต่อไปนี้:

  • หน้าเปล่า;

  • ข้อผิดพลาด 500 Internal Server Error;

  • ข้อผิดพลาด “เว็บไซต์นี้กำลังประสบปัญหาทางเทคนิค” (เริ่มใช้ใน WordPress 5.2.2);

  • หรือข้อผิดพลาดอื่นๆ ที่คล้ายกัน

เพื่อแก้ไขปัญหานี้ เพียงทำตามขั้นตอนด้านล่าง

ตรวจสอบไฟล์ error_log ของเว็บไซต์ของคุณ

เพื่อระบุสาเหตุของปัญหาในเว็บไซต์ของคุณ ให้ตรวจสอบไฟล์ error_log ไฟล์นี้จะบันทึกข้อผิดพลาดสำคัญที่เว็บไซต์ของคุณพบ

คุณสามารถหาไฟล์นี้ได้ในบัญชี cPanel ของคุณ > เมนู “File Manager” > โฟลเดอร์รากของการติดตั้ง WordPress ของคุณ 

เมื่อคุณเข้าสู่โฟลเดอร์รากของโดเมนแล้ว ให้ค้นหาไฟล์ error_log หากมีไฟล์นี้ ให้ทำตามขั้นตอนต่อไปนี้:

  1. คลิกขวาที่ไฟล์ จากนั้นเลือก ดู:


  2. ภายใน log คุณอาจเห็นข้อผิดพลาดเช่น: “No such file or directory in…” ตามด้วยเส้นทางของไฟล์ที่หายไป ซึ่งแสดงว่าไฟล์ที่จำเป็นขาดหายไปและทำให้เว็บไซต์ไม่สามารถทำงานได้อย่างถูกต้อง

    ตัวอย่างเช่น:

    /home/cPuser/public_html/wp-settings.php

  3. เพื่อกู้คืนไฟล์ที่หายไป ให้เลื่อนลงไปที่ส่วน "วิธีแทนที่ไฟล์ที่หายไป" ของคู่มือนี้

เปิดใช้งานตัวเลือก display_errors ของ PHP

หากไม่มีไฟล์ error_log ในโฟลเดอร์รากของเว็บไซต์ คุณสามารถเปิดใช้งานตัวเลือก display_errors ของ PHP ในบัญชี cPanel ของคุณ การตั้งค่านี้จะทำให้ข้อความแสดงข้อผิดพลาดปรากฏบนเว็บไซต์โดยตรง ทำให้ระบุปัญหาได้ง่ายขึ้น

สำคัญ: เพื่อความปลอดภัย อย่าลืมปิดใช้งาน display_errors เมื่อเสร็จสิ้นการแก้ไขปัญหา

คุณสามารถเปิดใช้งานตัวเลือก PHP ได้ด้วยวิธีต่อไปนี้:

  • ผ่าน php.ini 

นอกจากเมนู “PHP Tweaks” ใน cPanel แล้ว คุณยังสามารถปรับแต่งการตั้งค่าบางอย่างของเว็บไซต์ได้โดยตรงผ่านไฟล์ php.ini โดยเพิ่มหรือแก้ไขบรรทัดที่เกี่ยวข้องในไฟล์ดังกล่าว 

เพื่อเปิดใช้งานตัวเลือก display_errors คุณต้องเพิ่มบรรทัดต่อไปนี้ลงในไฟล์:

display_errors=1

คุณสามารถสร้างไฟล์ php.ini ใหม่ในโฟลเดอร์รากของเว็บไซต์แล้วเพิ่มบรรทัดนี้ หรือแก้ไขไฟล์ที่ระบบสร้างขึ้นโดยทำตามขั้นตอนด้านล่าง

  1. เข้าสู่ระบบบัญชี cPanel ของคุณและไปที่เมนู “File Manager”

  2. ตรวจสอบให้แน่ใจว่าได้เปิดใช้งานตัวเลือก “Show Hidden Files (dotfiles)” ในการตั้งค่า:


  3. ไปที่ไดเรกทอรีต่อไปนี้:  /home/cPanel_user/.system-php/ini


  4. เลือกเวอร์ชัน PHP ที่กำหนดให้กับโดเมนของคุณ แล้วเลือกไดเรกทอรีของโดเมน ตัวอย่างเช่น เส้นทางเต็มอาจเป็น:

    /home/cPanel_user/.system-php/ini/7.0/testwebsite.com

  5. คลิกขวาที่ไฟล์ php.ini แล้วเลือก แก้ไข.

  6. เพิ่มบรรทัดต่อไปนี้ลงในไฟล์:

    display_errors=1

  • ผ่าน .htaccess


เพื่อเปิดใช้งานตัวเลือก display_errors ของ PHP ผ่านไฟล์ .htaccess คุณต้องแก้ไขไฟล์ในโฟลเดอร์รากของเว็บไซต์ใน “File Manager” และเพิ่มบรรทัดต่อไปนี้:

php_value display_errors 1

ขั้นตอนโดยละเอียดในการค้นหาไฟล์ .htaccess สามารถดูได้ใน บทความนี้ 

หลังจากทำการเปลี่ยนแปลงแล้ว ให้คลิก บันทึก.

วิธีแทนที่ไฟล์ WordPress ที่หายไป

WordPress ใช้โครงสร้างไฟล์ที่เรียบง่ายและเป็นระเบียบ ซึ่งทำให้การกู้คืนไฟล์ที่หายไปหรือเสียหายทำได้ค่อนข้างง่าย ขอแนะนำให้แทนที่ไฟล์หลักทั้งหมด เพราะจะช่วยให้ไฟล์ที่ถูกมัลแวร์บุกรุกได้รับการกู้คืนอย่างสมบูรณ์ อย่างไรก็ตาม ควรดำเนินการด้วยความระมัดระวัง: การแทนที่ไฟล์หรือโฟลเดอร์บางไฟล์อาจทำให้ข้อมูลสูญหายหากทำไม่ถูกต้อง

ทำตามขั้นตอนด้านล่างเพื่อแทนที่ไฟล์ WordPress ที่หายไป:

  1. เข้าสู่ระบบ cPanel ของคุณและไปที่ Softaculous Apps Installer.

  2. สร้างการติดตั้ง WordPress ใหม่ในไดเรกทอรีย่อยชั่วคราว ในการทำเช่นนี้ ให้คลิกที่ไอคอน WordPress แล้วเลือก ติดตั้ง:


  3. คุณจะถูกเปลี่ยนเส้นทางไปยังหน้าตั้งค่าการติดตั้ง ที่นั่นให้เลือกชื่อโดเมนที่ต้องการจากเมนูแบบเลื่อนลง และกรอกชื่อโฟลเดอร์ย่อยในช่อง In Directory

    ในตัวอย่างนี้ เราใช้โฟลเดอร์ย่อย ” fix” สำหรับการติดตั้ง WordPress:


    หมายเหตุ: การแทนที่ไฟล์เริ่มต้นทั้งหมดจะอัปเดตการติดตั้งปัจจุบันของคุณเป็นเวอร์ชันเดียวกับที่ใช้ใน “fix” และการผสมไฟล์จากเวอร์ชันต่างกันอาจทำให้เกิดปัญหากับระบบและทำให้เว็บไซต์ทำงานผิดปกติ

    หากคุณต้องการคงเวอร์ชัน WordPress ปัจจุบันไว้ หรือวางแผนจะแทนที่เฉพาะไฟล์บางไฟล์ ให้ตรวจสอบเวอร์ชันของเว็บไซต์ในไฟล์ /wp-includes/version.php และตรวจสอบให้แน่ใจว่าการติดตั้งใหม่ใช้ เวอร์ชันเดียวกัน ของ WordPress:


  4. คุณสามารถเลือกเวอร์ชัน WordPress สำหรับการติดตั้งใหม่ได้โดยตรงในหน้าต่างติดตั้ง:


  5. เมื่อกำหนดค่าทุกอย่างเสร็จแล้ว ให้คลิก ติดตั้งด่วน หรือเลื่อนลงไปด้านล่างของหน้าติดตั้งแล้วคลิก ติดตั้ง 

  6. หลังจากติดตั้ง WordPress ใหม่เสร็จแล้ว ไฟล์จะปรากฏใน “File Manager” > โฟลเดอร์รากของโดเมนของคุณ ให้เปิดโฟลเดอร์โดยดับเบิลคลิก:


  7. หากต้องการแทนที่ไฟล์ที่หายไปเฉพาะเจาะจง (เช่น wp-settings.php) ให้ค้นหาไฟล์นั้นในไดเรกทอรีของการติดตั้งใหม่

  8. หลังจากนั้น ย้ายไฟล์ไปยังโฟลเดอร์รากของเว็บไซต์ปัจจุบันของคุณโดยคลิกขวาที่ไฟล์ > คลิกที่ ย้าย > กรอกเส้นทางไปยังโฟลเดอร์รากของเว็บไซต์ > คลิก ย้ายไฟล์: 


  9. เมื่อเสร็จสิ้น ไฟล์ที่หายไปจะได้รับการกู้คืน และเว็บไซต์ของคุณควรโหลดได้ตามปกติ

วิธีแทนที่ไฟล์ WordPress เริ่มต้นทั้งหมด

ในกระบวนการแทนที่ไฟล์ WordPress เริ่มต้นทั้งหมดสำหรับเว็บไซต์ ขั้นตอนที่ 1-6 จะเหมือนกับในส่วน “วิธีแทนที่ไฟล์ WordPress ที่หายไป” 

หลังจากทำขั้นตอนเหล่านี้เสร็จและสร้างการติดตั้ง WordPress ใหม่แล้ว หากต้องการแทนที่ไฟล์เริ่มต้นทั้งหมดในโฟลเดอร์รากของเว็บไซต์ของคุณ โปรดทำตามขั้นตอนเหล่านี้:

  1. เปิดโฟลเดอร์รากของการติดตั้ง WordPress ใหม่:


  2. ภายในโฟลเดอร์การติดตั้งใหม่ ให้ลบไฟล์และโฟลเดอร์ดังต่อไปนี้:


    • .htaccess

    • wp-config.php

    • wp-content

      ไฟล์และโฟลเดอร์เหล่านี้มีการตั้งค่าและเนื้อหาของเว็บไซต์คุณ และต้องไม่เปลี่ยนแปลง

  3. จากนั้น ย้ายไฟล์ที่เหลือไปยังโฟลเดอร์รากของเว็บไซต์หลักของคุณ สำหรับขั้นตอนนี้ ให้ใช้ปุ่ม เลือกทั้งหมด > คลิกที่ ย้าย > กรอกเส้นทางไปยังโฟลเดอร์รากของเว็บไซต์ > คลิก ย้ายไฟล์:


  4. ไฟล์หลักของ WordPress ของคุณได้รับการแทนที่ทั้งหมดแล้ว เข้าเว็บไซต์ของคุณเพื่อตรวจสอบว่าทุกอย่างโหลดได้ถูกต้อง

    หากเว็บไซต์ยังคงแสดงข้อผิดพลาด ให้ตรวจสอบ error_log อีกครั้ง ในกรณีส่วนใหญ่ ปัญหาเพิ่มเติมเกิดจากไฟล์ธีมหรือปลั๊กอินที่หายไป

ไฟล์ธีมหรือปลั๊กอินหายไป

ไฟล์ธีมหรือปลั๊กอินที่หายไปอาจเกิดได้จากหลายสาเหตุ แต่สาเหตุที่พบบ่อยที่สุดคือมัลแวร์ที่ติดและลบส่วนประกอบสำคัญของการติดตั้ง WordPress ของคุณ 

หากไฟล์ปลั๊กอินหรือธีมของ WordPress ของคุณหายไป คุณอาจพบ:

  • หน้าเปล่า;

  • ข้อผิดพลาด 500 Internal Server Error;

  • ข้อผิดพลาด “เว็บไซต์นี้กำลังประสบปัญหาทางเทคนิค” (เริ่มใช้ใน WordPress 5.2.2);

  • หน้าโหลดไม่สมบูรณ์หรือแสดงผลผิดปกติ

สำหรับความช่วยเหลือในการวินิจฉัยปัญหา โปรดดูส่วนต่อไปนี้ของบทความนี้: ตรวจสอบไฟล์ error_log ของเว็บไซต์ของคุณ และ เปิดใช้งานตัวเลือก display_errors ของ PHP.

คุณอาจเห็นข้อความแสดงข้อผิดพลาดที่คล้ายกับตัวอย่างต่อไปนี้ใน error_log หรือบนเว็บไซต์โดยตรง:

PHP Fatal error: Uncaught Error: Call to undefined function sample_function() in /home/cPaneluser/...

ด้านล่างนี้คือตัวอย่างข้อผิดพลาดที่เกิดจากไฟล์ปลั๊กอินที่เสียหายหรือหายไป:


เพื่อกู้คืนไฟล์ที่หายไป เพียงติดตั้งธีมหรือปลั๊กอินที่ได้รับผลกระทบใหม่อีกครั้ง

หมายเหตุ: ไฟล์ functions.php ที่หายในธีมมักเกี่ยวข้องกับมัลแวร์ wp-vcd.php ซึ่งโดยปกติจะอยู่ในไดเรกทอรี /wp-includes ก่อนติดตั้งธีมใหม่ ให้ลบ wp-vcd.php หากมี หรือหากต้องการความปลอดภัยสูงสุด ให้แทนที่ไฟล์ WordPress เริ่มต้นทั้งหมดตามที่อธิบายไว้ ก่อนหน้านี้.

การเปลี่ยนเส้นทางที่เป็นอันตราย

ในบางกรณี เมื่อเว็บไซต์ของคุณติดมัลแวร์ อาจเริ่มเปลี่ยนเส้นทางผู้เข้าชมไปยังหน้าที่เป็นอันตรายหรือไม่น่าไว้วางใจ ปัญหานี้มักเกิดจากปลั๊กอินหรือธีมที่ไม่ปลอดภัย ซึ่งเปิดโอกาสให้ผู้โจมตีเปลี่ยน URL ในฐานข้อมูลหรือแก้ไขไฟล์ของเว็บไซต์คุณ

หมายเหตุ: อย่าคลิกที่ลิงก์เปลี่ยนเส้นทางใดๆ เด็ดขาด เพราะอาจทำให้คอมพิวเตอร์ของคุณติดมัลแวร์ได้:


เพื่อแก้ไขการเปลี่ยนเส้นทางที่เป็นอันตราย ให้ทำตามขั้นตอนด้านล่าง:

  1. ค้นหาไฟล์กำหนดค่าฐานข้อมูลของเว็บไซต์คุณ - wp-config.php ใน cPanel > File Manager > โฟลเดอร์รากของเว็บไซต์ เปิดไฟล์และค้นหาชื่อฐานข้อมูลของเว็บไซต์ในนั้น:


  2. จากนั้น เปิดฐานข้อมูลที่กำหนดให้กับเว็บไซต์ของคุณในเมนู phpMyAdmin ของ cPanel โดยคลิกเข้าไป แล้วไปที่ตาราง wp_options (“wp_” เป็นคำนำหน้ามาตรฐาน ชื่อของคุณอาจแตกต่างกัน):


  3. ตรวจสอบค่าของฟิลด์ siteurl และ home หากพบ URL ที่เป็นอันตรายหรือไม่น่าไว้วางใจ ให้แทนที่ด้วยชื่อโดเมนจริงของคุณ 


  4. สแกนฐานข้อมูลที่เหลือของคุณเพื่อหา URL ที่เป็นอันตรายลักษณะเดียวกัน และแทนที่ให้ถูกต้อง 

  5. เปลี่ยนไฟล์ .htaccess ปัจจุบันของคุณชั่วคราวด้วยเวอร์ชันเริ่มต้นที่สะอาดที่สุด แนะนำให้เปลี่ยนชื่อไฟล์เดิม (เช่น .htaccess_old) และสร้างไฟล์ใหม่ขึ้นมา

    หากต้องการเปลี่ยนชื่อไฟล์ ให้ดับเบิลคลิก > เลือก เปลี่ยนชื่อ จากรายการ > กรอกชื่อไฟล์ใหม่ > แล้วกด เปลี่ยนชื่อไฟล์.

    หลังจากนั้น หากต้องการสร้างไฟล์ใหม่ ให้คลิก + ไฟล์ > ตั้งชื่อว่า .htaccess > แล้วเลือก สร้างไฟล์ใหม่.

  6. เมื่อสร้างไฟล์ .htaccess ใหม่แล้ว ให้แก้ไขโดยคลิกขวา > เลือก แก้ไข จากรายการ เมื่อหน้าต่างแก้ไขเปิดขึ้น ให้วางกฎ WordPress เริ่มต้นต่อไปนี้ลงในไฟล์:

    # BEGIN WordPress
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    # END WordPress

  7. คลิก บันทึกการเปลี่ยนแปลง.

หากเว็บไซต์ของคุณยังคงเปลี่ยนเส้นทาง ให้ลองแทนที่ ไฟล์หลักของ WordPress ทั้งหมด.

คุณยังสามารถปิดใช้งานปลั๊กอินทั้งหมดชั่วคราวผ่านแดชบอร์ด WordPress หรือฐานข้อมูล แล้วลองเปิดทีละตัว เมื่อเปิดปลั๊กอินครบทุกตัวแล้ว ให้ตรวจสอบเว็บไซต์เพื่อดูว่าปลั๊กอินใดเป็นสาเหตุของปัญหาเปลี่ยนเส้นทางที่เป็นอันตราย

จำเป็นต้องใช้อีเมลที่ถูกต้อง