হ্যাক হওয়া 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. ফাইলটির উপর ডান ক্লিক করুন, তারপর View নির্বাচন করুন:


  2. লগের ভিতরে আপনি এমন একটি ত্রুটি দেখতে পারেন: “No such file or directory in…”, এরপর অনুপস্থিত ফাইলের পথ দেখাবে। এটি নির্দেশ করে যে একটি প্রয়োজনীয় ফাইল অনুপস্থিত এবং ওয়েবসাইটটি সঠিকভাবে চলতে বাধা দিচ্ছে।

    উদাহরণস্বরূপ:

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

  3. অনুপস্থিত ফাইল পুনরুদ্ধার করতে, এই গাইডের "কিভাবে অনুপস্থিত ফাইল প্রতিস্থাপন করবেন" অংশে যান।

display_errors PHP অপশন সক্রিয় করুন

যদি error_log ফাইলটি আপনার ওয়েবসাইটের রুট ডিরেক্টরিতে না থাকে, তাহলে আপনি আপনার cPanel অ্যাকাউন্টে display_errors PHP অপশনটি সক্রিয় করতে পারেন। এই সেটিংটি ত্রুটির বার্তা সরাসরি আপনার ওয়েবসাইটে দেখাবে, ফলে সমস্যাটি চিহ্নিত করা সহজ হবে।

গুরুত্বপূর্ণ: নিরাপত্তার কারণে, সমস্যা সমাধান শেষ হলে display_errors অবশ্যই নিষ্ক্রিয় করুন।

আপনি নিম্নলিখিত উপায়ে PHP অপশনটি সক্রিয় করতে পারেন:

  • php.ini এর মাধ্যমে 

cPanel-এর “PHP Tweaks” মেনুর পাশাপাশি, আপনি সরাসরি একটি 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 ফাইলের উপর ডান ক্লিক করুন এবং Edit নির্বাচন করুন।

  6. ফাইলে নিম্নলিখিত লাইনটি যোগ করুন:

    display_errors=1

  • .htaccess এর মাধ্যমে


.htaccess ফাইলের মাধ্যমে display_errors PHP অপশনটি সক্রিয় করতে, আপনাকে “File Manager”-এ ওয়েবসাইটের রুট ডিরেক্টরির ভিতরে ফাইলটি সম্পাদনা করতে হবে এবং সেখানে নিম্নলিখিত লাইনটি যোগ করতে হবে:

php_value display_errors 1

.htaccess ফাইলটি কোথায় পাবেন, তার বিস্তারিত ধাপ এই নিবন্ধে পাওয়া যাবে। 

পরিবর্তন করার পর, Save ক্লিক করুন।

কিভাবে অনুপস্থিত WordPress ফাইল প্রতিস্থাপন করবেন

WordPress একটি সহজ ও সংগঠিত ফাইল স্ট্রাকচার ব্যবহার করে, যা অনুপস্থিত বা ক্ষতিগ্রস্ত ফাইল পুনরুদ্ধারকে তুলনামূলকভাবে সহজ করে তোলে। ডিফল্ট কোর ফাইলগুলো প্রতিস্থাপন করার জোর সুপারিশ করা হয়, কারণ এটি নিশ্চিত করে যে ম্যালওয়্যারে আক্রান্ত যেকোনো ফাইল সম্পূর্ণরূপে পুনরুদ্ধার হয়েছে। তবে, সতর্ক থাকুন: কিছু ফাইল বা ফোল্ডার প্রতিস্থাপন করলে যদি সঠিকভাবে না করা হয়, তাহলে ডেটা হারানোর ঝুঁকি থাকতে পারে।

অনুপস্থিত WordPress ফাইল প্রতিস্থাপনের জন্য নিচের ধাপগুলো অনুসরণ করুন:

  1. আপনার cPanel-এ লগইন করুন এবং Softaculous Apps Installer-এ যান।

  2. একটি অস্থায়ী সাবডিরেক্টরিতে নতুন WordPress ইনস্টলেশন তৈরি করুন। এটি করতে, WordPress আইকনে ক্লিক করুন এবং তারপর Install নির্বাচন করুন:


  3. আপনাকে ইনস্টলেশন সেটিংস পৃষ্ঠায় রিডাইরেক্ট করা হবে। সেখানে, সংশ্লিষ্ট ডোমেইনটি ড্রপডাউন মেনু থেকে নির্বাচন করুন এবং In Directory ফিল্ডে একটি সাবফোল্ডারের নাম লিখুন।

    এই উদাহরণে, আমরা ” fix” সাবফোল্ডারটি WordPress ইনস্টলেশনের জন্য ব্যবহার করছি:


    নোট: সমস্ত ডিফল্ট ফাইল প্রতিস্থাপন করলে আপনার বিদ্যমান ইনস্টলেশনটি অস্থায়ী “fix” ইনস্টলেশনে ব্যবহৃত সংস্করণে আপডেট হবে এবং বিভিন্ন সংস্করণের ফাইল মিশ্রিত করলে সিস্টেম কনফ্লিক্ট ও সাইটের কার্যকারিতা নষ্ট হতে পারে।

    আপনার বর্তমান WordPress সংস্করণ বজায় রাখা গুরুত্বপূর্ণ হলে, অথবা আপনি শুধুমাত্র নির্দিষ্ট কিছু ফাইল প্রতিস্থাপন করতে চাইলে, /wp-includes/version.php ফাইলে আপনার সাইটের সংস্করণ চেক করুন এবং নিশ্চিত করুন যে নতুন ইনস্টলেশনটি একই WordPress সংস্করণ ব্যবহার করছে:


  4. নতুন ইনস্টলেশনের জন্য WordPress সংস্করণটি সরাসরি ইনস্টলেশন উইন্ডো থেকে নির্বাচন করতে পারেন:


  5. সব সেটিংস কনফিগার করার পর, Quick Install ক্লিক করুন অথবা ইনস্টলেশন পৃষ্ঠার নিচে স্ক্রল করে Install ক্লিক করুন। 

  6. নতুন WordPress ইনস্টলেশন সম্পন্ন হলে, এর ফাইলগুলো “File Manager” > আপনার ডোমেইনের রুট ডিরেক্টরিতে দেখা যাবে। ফোল্ডারটি ডাবল ক্লিক করে খুলুন:


  7. নির্দিষ্ট কোনো অনুপস্থিত ফাইল (যেমন, wp-settings.php) প্রতিস্থাপন করতে, নতুন ইনস্টলেশনের ডিরেক্টরির ভিতরে সেই ফাইলটি খুঁজে বের করুন।

  8. এরপর, ফাইলটি আপনার ওয়েবসাইটের বর্তমান রুট ডিরেক্টরিতে নিয়ে যান, ফাইলের উপর ডান ক্লিক করুন > Move ক্লিক করুন > আপনার ওয়েবসাইটের রুট ফোল্ডারের পথ লিখুন > Move file(s) ক্লিক করুন: 


  9. সম্পন্ন হলে, অনুপস্থিত ফাইলটি পুনরুদ্ধার হয়েছে এবং আপনার ওয়েবসাইট এখন সঠিকভাবে লোড হওয়া উচিত।

কিভাবে সমস্ত ডিফল্ট WordPress ফাইল প্রতিস্থাপন করবেন

একটি ওয়েবসাইটের জন্য সমস্ত ডিফল্ট WordPress ফাইল প্রতিস্থাপনের প্রক্রিয়ায়, ধাপ ১-৬ “কিভাবে অনুপস্থিত WordPress ফাইল প্রতিস্থাপন করবেন” অংশের মতোই। 

এই ধাপগুলো সম্পন্ন হলে এবং নতুন WordPress ইনস্টলেশন তৈরি হলে, আপনার ওয়েবসাইটের রুট ফোল্ডারে সমস্ত ডিফল্ট ফাইল প্রতিস্থাপন করতে, দয়া করে নিচের ধাপগুলো অনুসরণ করুন:

  1. নতুন WordPress ইনস্টলেশনের রুট ফোল্ডার খুলুন:


  2. নতুন ইনস্টলেশন ফোল্ডারের ভিতরে, নিম্নলিখিত ফাইল ও ফোল্ডারগুলো মুছে ফেলুন:


    • .htaccess

    • wp-config.php

    • wp-content

      এই ফাইল ও ফোল্ডারগুলো আপনার সাইটের কনফিগারেশন ও কনটেন্ট ধারণ করে এবং অপরিবর্তিত থাকতে হবে।

  3. এরপর, বাকি ফাইলগুলো আপনার মূল ওয়েবসাইটের রুট ডিরেক্টরিতে নিয়ে যান। এর জন্য, Select All বাটন ব্যবহার করুন > ক্লিক করুন Move > আপনার সাইটের রুট ফোল্ডারের পথ লিখুন > ক্লিক করুন Move file(s):


  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. এরপর, আপনার ওয়েবসাইটের জন্য নির্ধারিত ডাটাবেসটি cPanel-এর phpMyAdmin মেনুতে খুলুন এবং wp_options টেবিলে যান (“wp_” ডিফল্ট প্রিফিক্স; আপনারটি আলাদা হতে পারে):


  3. siteurl এবং home ফিল্ডের মান পর্যালোচনা করুন, এবং সেখানে যদি কোনো ক্ষতিকর বা সন্দেহজনক URL দেখেন, তাহলে সেগুলো আপনার প্রকৃত ডোমেইন নামে পরিবর্তন করুন: 


  4. আপনার ডাটাবেসের বাকি অংশেও অনুরূপ ক্ষতিকর URL খুঁজে বের করুন এবং সেগুলো যথাযথভাবে পরিবর্তন করুন। 

  5. আপনার বর্তমান .htaccess অস্থায়ীভাবে একটি পরিষ্কার ডিফল্ট সংস্করণ দিয়ে প্রতিস্থাপন করুন। বিদ্যমান ফাইলটি পুনঃনামকরণ করা (যেমন, .htaccess_old) এবং নতুন একটি ফাইল তৈরি করা উত্তম।

    ফাইলটি পুনঃনামকরণ করতে, ডাবল ক্লিক করুন > Rename নির্বাচন করুন > নতুন ফাইলের নাম লিখুন > Rename file চাপুন।

    এরপর, নতুন ফাইল তৈরি করতে, + File ক্লিক করুন > নাম দিন .htaccess > Create New File নির্বাচন করুন।

  6. নতুন .htaccess তৈরি হলে, ডান ক্লিক করে সম্পাদনা করুন > Edit নির্বাচন করুন। সম্পাদনা উইন্ডো খুললে, নিচের ডিফল্ট 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. Save Changes ক্লিক করুন।

আপনার ওয়েবসাইট এখনও রিডাইরেক্ট হলে, সমস্ত ডিফল্ট WordPress কোর ফাইল প্রতিস্থাপন করার চেষ্টা করুন।

আপনি WordPress ড্যাশবোর্ড বা ডাটাবেসের মাধ্যমে সাময়িকভাবে সব প্লাগইন নিষ্ক্রিয় করতে পারেন এবং একে একে সক্রিয় করে দেখতে পারেন। প্রতিটি প্লাগইন সক্রিয় করার পর ওয়েবসাইট চেক করুন, কোনটি ক্ষতিকর রিডাইরেক্টের কারণ হচ্ছে তা নির্ধারণ করতে।

একটি বৈধ ইমেইল প্রয়োজন