WordPress

প্লাগইন নিয়ে ছয়টা বিশ্বাস, যেগুলো সাইট ভাঙার আসল কারণ

‘বন্ধ করা প্লাগইন ক্ষতি করে না’, ‘ফ্রি মানেই অনিরাপদ’, ‘অটো-আপডেট বন্ধ রাখাই ভালো’ — এই ধারণাগুলো WordPress সাইটে কীভাবে সত্যিকারের ক্ষতি করে, আর সঠিক অভ্যাসটা কী, তা মাঠের উদাহরণ দিয়ে দেখানো হলো।

স্ট্যাক অ্যালিক্স টিমস্ট্যাক অ্যালিক্স টিম১০ জুল, ২০২৬ মিনিট পড়া
শেয়ার করুন

গত মার্চে মিরপুরের একটা কোচিং সেন্টার থেকে সকাল সাড়ে সাতটায় ফোন এসেছিল। তাদের ওয়েবসাইটে ঢোকার তিন-চার সেকেন্ড পর ভিজিটর নিজে থেকেই একটা বিদেশি জুয়ার সাইটে চলে যাচ্ছে। ভর্তির মৌসুম, দিনে দুই হাজারের বেশি ভিজিটর — অর্থাৎ প্রতি ঘণ্টায় সত্যিকারের টাকা হারাচ্ছে। সার্ভার লগ ঘেঁটে যা পাওয়া গেল, সেটা মোটেই নাটকীয় কিছু নয়: দুই বছর ধরে আপডেট না পাওয়া একটা স্লাইডার প্লাগইন, তার ভেতরের একটা আপলোড হ্যান্ডলার দিয়ে বাইরের কেউ একটা PHP ফাইল বসিয়ে দিয়েছে।

মালিকের প্রথম বাক্যটাই এই লেখার আসল বিষয়। তিনি বললেন, ‘ওই প্লাগইনটা তো আমরা এক বছর আগেই বন্ধ করে রেখেছি!’ কথাটা সত্যি। প্লাগইনটা ডিঅ্যাক্টিভেট করা ছিল, WordPress ড্যাশবোর্ডে ধূসর হয়ে পড়ে ছিল। কিন্তু ফাইলগুলো সার্ভারে ছিল, ঠিক আগের জায়গাতেই।

ডিঅ্যাক্টিভেট করা প্লাগইনের কোড WordPress লোড করে না — কিন্তু সার্ভার ফাইলটা ঠিকই সার্ভ করে। আক্রমণকারী ড্যাশবোর্ড দিয়ে ঢোকে না, সে সরাসরি /wp-content/plugins/… পথের ফাইলটা ডাকে।

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

‘প্লাগইন যত কম, সাইট তত দ্রুত’ — সংখ্যা নয়, খরচটা মাপুন

সবচেয়ে বেশি শোনা প্রশ্ন: ‘ভাই, কয়টা প্লাগইন রাখা নিরাপদ?’ সংখ্যাটার সাথে গতির সম্পর্ক আসলে খুবই দুর্বল। আমরা এমন সাইট চালাই যেখানে ২৩টা প্লাগইন আছে, TTFB ৩৮০ মিলিসেকেন্ড; আবার এমন সাইটও ঠিক করেছি যেখানে মাত্র ৭টা প্লাগইন, অথচ হোমপেজ লোড হতে ৪ সেকেন্ড লাগত। কারণ প্লাগইন গোনা হয় না, প্লাগইনের খরচ মাপা হয়।

খরচটা মাপার সবচেয়ে সহজ উপায় Query Monitor (ফ্রি)। ইনস্টল করে অ্যাডমিন বারে ক্লিক করলে ‘Queries by Component’ প্যানেলটা দেখায় কোন প্লাগইন কতগুলো ডেটাবেজ কোয়েরি চালাল আর কত মিলিসেকেন্ড খেল। বাস্তব একটা মাপ: একটা জনপ্রিয় ‘পোস্ট ভিউ কাউন্টার’ প্লাগইন প্রতিটা পেজলোডে ডেটাবেজে লিখছিল, ফলে ক্যাশিং কাজই করছিল না — একা সে ২১০ মিলিসেকেন্ড আর ১৪টা কোয়েরি যোগ করছিল। অন্যদিকে Yoast, WPForms আর LiteSpeed Cache — তিনটা মিলে যোগ করছিল ৪০ মিলিসেকেন্ডের কম।

তাই ‘বাদ দেওয়ার’ কাজটা অন্ধভাবে করবেন না। আগে মাপুন, তারপর সবচেয়ে ভারী তিনটাকে ধরুন। যেগুলো হালকা, সেগুলো ২৫টা থাকলেও ক্ষতি নেই।

  • অ্যাডমিন প্যানেলে ভারী, ফ্রন্টএন্ডে হালকা — যেমন ব্যাকআপ প্লাগইন — এদের নিয়ে চিন্তা কম করুন।
  • প্রতিটা পেজলোডে ডেটাবেজে লেখে এমন প্লাগইন (ভিউ কাউন্টার, ভিজিটর লগার, কিছু রিলেটেড-পোস্ট প্লাগইন) — এরাই পেজ ক্যাশ অকেজো করে দেয়।
  • একটা প্লাগইন যদি সব পেজে নিজের CSS/JS ঢোকায় অথচ কাজে লাগে শুধু একটা পেজে (যেমন কন্টাক্ট ফর্ম), তাহলে Perfmatters বা Asset CleanUp দিয়ে শুধু ওই পেজে লোড করান।

‘বন্ধ করে রেখেছি, তাই আর ঝুঁকি নেই’

উপরের কোচিং সেন্টারের ঘটনাটা এখান থেকেই এসেছে, আর এই ভুলটা আমরা প্রতি মাসে অন্তত দুবার দেখি। ডিঅ্যাক্টিভেট করলে WordPress প্লাগইনের কোড আর চালায় না — কিন্তু ফাইলগুলো /wp-content/plugins/ ফোল্ডারে বহাল তবিয়তে থাকে, আর সেগুলো ইন্টারনেট থেকে সরাসরি ডাকা যায়। প্লাগইনের ভেতরের যে ফাইলটা WordPress-এর অথেন্টিকেশন ছাড়াই কাজ করে, দুর্বলতা থাকলে সেটাই আক্রমণের দরজা।

সঠিক অভ্যাসটা এক লাইনের: যেটা ব্যবহার করছেন না, সেটা ডিলিট করুন। ডিঅ্যাক্টিভেট রাখাটা কোনো নিরাপদ মধ্যপন্থা নয়। WP-CLI থাকলে wp plugin list --status=inactive দিয়ে তালিকা দেখুন, তারপর wp plugin delete <name>। একই নিয়ম থিমেও খাটে — Twenty Twenty-Two, Twenty Twenty-Three, পুরনো কেনা থিম, সব ফেলে দিন; শুধু চালু থিম আর একটা ফলব্যাক ডিফল্ট থিম রাখুন।

একটা কথা মনে রাখবেন: ডিলিট করার আগে একটা ব্যাকআপ নিন, আর প্লাগইনটা যদি নিজের টেবিল বা সেটিংস রেখে যায়, সেটা আলাদা করে পরিষ্কার করতে হবে। কিন্তু ঝুঁকির দিক থেকে ‘ফাইল সরানো’ই সবচেয়ে বড় জয়।

‘ফ্রি প্লাগইন অনিরাপদ, টাকা দিয়ে কিনলে নিরাপদ’

দামের সাথে নিরাপত্তার সম্পর্ক আছে বলে যাঁরা ধরে নেন, তাঁদের জন্য দুটো বাস্তব ঘটনা। ২০২৩ সালে Elementor Pro-তে (একটা দামি, বহুল ব্যবহৃত প্লাগইন) এমন একটা ত্রুটি ধরা পড়ে যেখানে WooCommerce চালু থাকলে সাধারণ সাবস্ক্রাইবার অ্যাকাউন্ট থেকেই সাইটের অ্যাডমিন হয়ে যাওয়া সম্ভব ছিল। আবার একই বছর Ultimate Member নামের একটা ফ্রি প্লাগইনেও প্রায় একই ধরনের প্রিভিলেজ এস্কেলেশনের ঘটনা ঘটে। দাম দুটো ঘটনার কোনোটাই ঠেকায়নি।

যেটা আসলে গুরুত্বপূর্ণ, সেটা দামের ট্যাগ নয় — রক্ষণাবেক্ষণের অভ্যাস। প্লাগইন পেজে যা দেখা দরকার: শেষ আপডেট কবে হয়েছে (৬ মাসের বেশি পুরনো হলে সতর্ক হোন), আগের কোনো ত্রুটি রিপোর্ট হওয়ার পর ডেভেলপার কত দিনে প্যাচ ছেড়েছেন, সাপোর্ট ফোরামে অমীমাংসিত থ্রেডের অনুপাত কেমন, আর ডেভেলপারটা একজন শখের মানুষ নাকি একটা কোম্পানি।

আর নাল্ড (ক্র্যাক করা) প্রিমিয়াম প্লাগইন? ওটা এই দুই জগতের সবচেয়ে খারাপ অংশ — দামি প্লাগইনের জটিল কোড, অথচ কোনো আপডেট চ্যানেল নেই, আর ফাইলে বাড়তি কোড ঢোকানো আছে কি না তা যাচাই করার কোনো উপায়ও নেই। ২,৫০০ টাকার লাইসেন্স বাঁচাতে গিয়ে ৩০ হাজার টাকার ক্লিনআপ বিল — এই হিসাবটা আমরা অনেকবার দেখেছি।

‘সিকিউরিটি প্লাগইন বসানো আছে, সাইট নিরাপদ’

Wordfence বা Solid Security ইনস্টল করা মানে দরজায় তালা লাগানো নয়, বরং একটা সিসিটিভি ক্যামেরা বসানো — উপকারী, কিন্তু একা যথেষ্ট নয়। দুটো বাস্তব সীমাবদ্ধতা জেনে রাখুন। এক, Wordfence-এর ফ্রি সংস্করণে নতুন ফায়ারওয়াল রুলগুলো পৌঁছায় প্রিমিয়াম ব্যবহারকারীদের ৩০ দিন পরে — অর্থাৎ যে ত্রুটিটা এই সপ্তাহে প্রকাশ পেল, তার সুরক্ষা আপনি পাবেন পরের মাসে। দুই, ফায়ারওয়াল ‘Basic Protection’ মোডে ইনস্টল হয়; Extended Protection চালু না করলে (auto_prepend_file সেটআপ) অনেক রিকোয়েস্ট WordPress লোড হওয়ার আগেই বেরিয়ে যায়।

আর যে জিনিসগুলো কোনো সিকিউরিটি প্লাগইনই ঠেকাতে পারবে না: admin/admin123 পাসওয়ার্ড, সব কর্মীর জন্য একই অ্যাডমিন অ্যাকাউন্ট, cPanel-এর পাসওয়ার্ড হোয়াটসঅ্যাপে শেয়ার করা, কিংবা কনটেন্ট রাইটারকে Administrator রোল দিয়ে দেওয়া।

  • সব অ্যাডমিন অ্যাকাউন্টে টু-ফ্যাক্টর চালু করুন — Wordfence-এর ফ্রি ভার্সনেই আছে।
  • কনটেন্ট লেখার জন্য Editor বা Author রোল যথেষ্ট; Administrator দরকার নেই।
  • wp-config.php-তে define('DISALLOW_FILE_EDIT', true); বসান, যাতে ড্যাশবোর্ড থেকে থিম/প্লাগইন ফাইল এডিট করা না যায়।
  • ব্যাকআপ সাইটের বাইরে রাখুন — UpdraftPlus দিয়ে Google Drive বা S3-তে। হোস্টিং কোম্পানির সার্ভারেই যদি একমাত্র ব্যাকআপ থাকে, সাইট হ্যাক হলে ব্যাকআপও সন্দেহের বাইরে নয়।

‘অটো-আপডেট বন্ধ রাখাই নিরাপদ, নইলে সাইট ভাঙবে’

ভয়টা অযৌক্তিক নয় — আপডেটে সাইট ভাঙে, বিশেষত পেজ বিল্ডার আর WooCommerce এক্সটেনশনে। কিন্তু বাস্তবে যত সাইট হ্যাক হয়, তার বিপুল অংশ ভাঙে এমন ত্রুটিতে যেটার প্যাচ কয়েক সপ্তাহ বা কয়েক মাস আগেই বেরিয়ে গিয়েছিল। অর্থাৎ আপডেট না করাটা ঝুঁকি কমায় না, শুধু ঝুঁকির সময়টা বাড়ায়।

কাজের সমাধান হলো ভাগ করে নেওয়া। যে প্লাগইনগুলো চেকআউট, পেমেন্ট বা লেআউটে হাত দেয় না — Yoast, WPForms, Query Monitor, ক্লাসিক এডিটর — সেগুলোর অটো-আপডেট চালু করে দিন। যেগুলো টাকা-পয়সার পথে বসে আছে (WooCommerce, পেমেন্ট গেটওয়ে, Elementor Pro), সেগুলো স্টেজিংয়ে আগে পরীক্ষা করুন। বেশিরভাগ বাংলাদেশি cPanel হোস্টিংয়ে WP Toolkit বা Softaculous দিয়ে এক ক্লিকে স্টেজিং কপি বানানো যায়; না থাকলে WP Staging প্লাগইনের ফ্রি ভার্সনই যথেষ্ট।

আপডেটের আগে ব্যাকআপ নিলেন কি না — সেটা বড় কথা নয়। বড় কথা হলো, আপনি কি কখনো সেই ব্যাকআপ থেকে রিস্টোর করে দেখেছেন? বছরে একবার একটা টেস্ট রিস্টোর করুন। যে ব্যাকআপ কোনোদিন ফেরানো হয়নি, সেটা ব্যাকআপ নয়, একটা অনুমান।

‘সাইট বুঝে নিয়েছি, প্লাগইন এখন ক্লায়েন্টের মাথাব্যথা’

এটা ফ্রিল্যান্সার আর এজেন্সির ভুল, আর এটার দাম দুই পক্ষই দেয়। ডেলিভারির ছয় মাস পর ক্লায়েন্ট ফোন করে বলেন সাইট ভেঙে গেছে, আর তখন দেখা যায় Elementor Pro-র লাইসেন্স আট মাস আগে শেষ হয়েছে, ফলে সাইটটা আট মাসের পুরনো কোডে চলছে — নতুন কোনো সিকিউরিটি প্যাচ সেখানে পৌঁছায়নি।

হ্যান্ডওভারের সময় একটা সাধারণ টেবিল ধরিয়ে দিন: প্লাগইনের নাম, কী কাজে লাগে, ফ্রি না পেইড, লাইসেন্সের মেয়াদ কবে শেষ, বছরে খরচ কত। এই একটা কাগজ ক্লায়েন্টকে বাঁচায়, আর আপনার জন্য পরের কাজটাও তৈরি করে — মাসিক ১,৫০০ থেকে ৩,০০০ টাকার একটা কেয়ার প্ল্যান, যেখানে আপনি আপডেট চালান, ব্যাকআপ যাচাই করেন, আর মাসে একটা ছোট রিপোর্ট পাঠান। দশজন ক্লায়েন্ট মানে মাসে ১৫–৩০ হাজার টাকার নিয়মিত আয়, আর ‘সাইট হ্যাক হয়ে গেছে’ টাইপের জরুরি ফোন অনেক কমে যাওয়া।

যে প্রশ্নগুলো প্রায়ই আসে

একটা WordPress সাইটে সর্বোচ্চ কয়টা প্লাগইন রাখা যায়? কোনো নির্দিষ্ট সংখ্যা নেই। Query Monitor দিয়ে দেখুন কোন প্লাগইন কত মিলিসেকেন্ড খরচ করছে; ২৫টা হালকা প্লাগইন ৬টা ভারী প্লাগইনের চেয়ে দ্রুত হতে পারে। সংখ্যাটা নয়, মোট PHP টাইম আর কোয়েরি সংখ্যাটাই মাপার জিনিস।

প্লাগইন ডিলিট করলে কি ডেটা চলে যাবে? কিছু প্লাগইন ডিলিটের সময় নিজের টেবিল ও অপশন মুছে দেয়, কিছু রেখে দেয়। তাই ডিলিটের আগে ব্যাকআপ নিন। ফর্ম এন্ট্রি বা অর্ডার ডেটা থাকলে আগে CSV এক্সপোর্ট করে রাখুন।

শেয়ার্ড হোস্টিংয়ে কি এত কিছু করা সম্ভব? হ্যাঁ। এই লেখার প্রায় সব পরামর্শ — Query Monitor, প্লাগইন ডিলিট, 2FA, DISALLOW_FILE_EDIT, UpdraftPlus — শেয়ার্ড cPanel-এ কাজ করে। শুধু WP-CLI আর স্টেজিংয়ের জন্য হোস্টের সাপোর্টে একবার জিজ্ঞেস করে নিন; বেশিরভাগ ভালো লোকাল হোস্টেই এখন WP Toolkit আছে।

সাইট একবার হ্যাক হলে শুধু প্লাগইন আপডেট করলেই কি ঠিক হয়ে যাবে? না। আপডেট দরজাটা বন্ধ করে, কিন্তু ঘরের ভেতরে ঢুকে পড়া জিনিসটা সরায় না। ব্যাকডোর ফাইল, ভুয়া অ্যাডমিন ইউজার, ডেটাবেজে ঢোকানো স্ক্রিপ্ট — এগুলো আলাদা করে খুঁজে বের করতে হয়, নয়তো কয়েক দিনের মধ্যে সাইট আবার সংক্রমিত হবে।

প্লাগইন স্ট্যাক নিয়ে সন্দেহ থাকলে একবার তালিকাটা বের করে পাশে বসুন — কোনটা কী কাজ করছে, শেষ কবে আপডেট হয়েছে, আর কোনটা শুধু বন্ধ অবস্থায় পড়ে আছে। স্ট্যাক অ্যালিক্স-এ আমরা এই অডিটটাই করি ক্লায়েন্টদের জন্য, আর দরকার হলে পুরো সাইটের রক্ষণাবেক্ষণের দায়িত্বও নিই। সাইটের গতি বা নিরাপত্তা নিয়ে ভাবনা থাকলে নির্দ্বিধায় নক করুন — প্রথম আলাপটা কোনো বিল ছাড়াই।

ট্যাগ:WordPress#wordpress#wordpress plugins#essential plugins#wordpress security#query monitor#site speed#plugin updates#wordpress maintenance
স্ট্যাক অ্যালিক্স টিম
লেখক সম্পর্কে
স্ট্যাক অ্যালিক্স টিম
Stack Alix কন্ট্রিবিউটর

ডিজিটাল প্রোডাক্ট, ডেভেলপমেন্ট ও অনলাইন ব্যবসা নিয়ে নিয়মিত লেখেন।

নতুন আর্টিকেল ইনবক্সে পেতে চান?

সপ্তাহের সেরা টিপস ও গাইড সরাসরি আপনার ইমেইলে।