শুক্রবার রাত এগারোটায় ফোনটা এল। ওপাশে গুলশানের একটা ছোট ফার্নিচার শোরুমের মালিক — তাঁর ওয়েবসাইট খুললে এখন জাপানি অক্ষরে ওষুধের বিজ্ঞাপন ভেসে ওঠে, গুগলে দোকানের নাম লিখে সার্চ করলে নিচে উদ্ভট সব লিংক দেখায়। সাইটটা তিন বছর ধরে দিব্যি চলছিল, একদিনও কিছু হয়নি। ফোনে তিনি বারবার একটা কথাই বলছিলেন — ‘আমার সাইটে তো এমন কিছু নেই যে কেউ হ্যাক করবে।’ ঠিক এই একটা বাক্যই বাংলাদেশের হাজারো ওয়েবসাইট মালিকের সবচেয়ে ব্যয়বহুল ভুল ধারণা।
wordpress security নিয়ে যত পরামর্শ ফেসবুক গ্রুপ আর ইউটিউব ভিডিওতে ঘোরে, তার বেশিরভাগই হয় আধা-সত্য, নয়তো এক দশক আগে সত্য ছিল — আজ আর নয়। নিচে ছয়টা ধারণা ধরে ধরে দেখাব কোনটা কেন ভুল, আর তার জায়গায় ঠিক কী করলে সত্যিই কাজ হয়। কোনো তত্ত্ব নয় — প্রতিটা পরামর্শ এমন, যা আজ রাতেই নিজের সাইটে প্রয়োগ করে ফেলা যায়।
ভুল ধারণা ১: ‘আমার সাইট ছোট, হ্যাকারের কী দরকার?’
হ্যাকার আপনাকে চেনে না, আপনার ব্যবসার নামও শোনেনি। যেটা আপনার সাইটের দরজায় নক করছে, সেটা একটা বট — দিনে কয়েক লাখ ডোমেইন স্ক্যান করে যায়। সে দেখে /wp-content/plugins/ ফোল্ডারে কী কী আছে, readme.txt ফাইলে কোন ভার্সন লেখা, /wp-json/ থেকে কী তথ্য বেরিয়ে আসে। সেই তালিকায় যদি এমন কোনো প্লাগিন থাকে যার একটা পাবলিক এক্সপ্লয়েট আছে, বট সেটা চেষ্টা করে দেখে। আপনার সাইটে দিনে ৩০ জন ভিজিটর আসে না ৩ হাজার — এই হিসাবটা সেই স্ক্রিপ্টের কোডেই লেখা নেই।
প্রশ্ন হলো, ছোট সাইট দখল করে লাভ কী? লাভ আছে, বেশ হিসেবি লাভ। আপনার হোস্টিং অ্যাকাউন্ট থেকে হাজার হাজার স্প্যাম মেইল পাঠানো যায় — ফল হিসেবে ডোমেইনের রেপুটেশন এমন নষ্ট হয় যে পরে ক্লায়েন্টকে পাঠানো ইনভয়েস মেইলটাও স্প্যাম ফোল্ডারে গিয়ে পড়ে থাকে। আপনার সাইটের ভেতরে লুকানো পেজ বানিয়ে জুয়া বা বেটিং সাইটের ব্যাকলিংক বসানো যায়, অর্থাৎ গুগলের চোখে আপনার সাইটের যেটুকু বিশ্বাসযোগ্যতা জমেছে সেটাই ওরা বিক্রি করে দেয়। মোবাইল ভিজিটরদের অন্য সাইটে রিডাইরেক্ট করে বিজ্ঞাপনের টাকাও কামানো যায়। আপনার সাইট ওদের কাছে লক্ষ্যবস্তু নয় — ওটা একটা ফ্রি সার্ভার।
সন্দেহ হচ্ছে? cPanel থেকে Raw Access Logs নামিয়ে একবার খুলে দেখুন, ‘POST /wp-login.php’ লাইনটা কতবার এসেছে। যে সাইটের খবর কেউ রাখে না, সেখানেও দিনে দুই-তিনশো লগইন চেষ্টা পাওয়া একদম স্বাভাবিক ঘটনা।
ভুল ধারণা ২: ‘Wordfence বসিয়ে দিয়েছি, এখন নিশ্চিন্ত’
সিকিউরিটি প্লাগিন দরকারি, কিন্তু ওটা ফায়ার সার্ভিস নয় — ওটা ধোঁয়া শনাক্তকারী অ্যালার্ম। পার্থক্যটা টেকনিক্যাল: Wordfence বা Solid Security কাজ শুরুই করে তখন, যখন WordPress নিজে লোড হয়ে গেছে, অর্থাৎ PHP ইতিমধ্যে চলছে। কিন্তু অনেক এক্সপ্লয়েট সরাসরি একটা প্লাগিন ফাইলে রিকোয়েস্ট পাঠায়, যা WordPress-এর নিরাপত্তা স্তরে পৌঁছানোর আগেই এক্সিকিউট হয়ে যায়। অ্যালার্ম হয়তো বাজবে, কিন্তু আগুন ততক্ষণে লেগে গেছে।
- প্লাগিন যা ভালো পারে: ম্যালওয়্যার স্ক্যান, ফাইল পরিবর্তনের অ্যালার্ট, লগইন চেষ্টা সীমিত করা, টু-ফ্যাক্টর যোগ করা, সন্দেহজনক আইপি ব্লক করা।
- প্লাগিন যা পারে না: নাল্ড থিমে বসানো ব্যাকডোর ধরা (ওটা তো ‘থিমেরই বৈধ ফাইল’), আপনার দুর্বল পাসওয়ার্ড শক্ত করা, কিংবা হোস্টিংয়ের পুরোনো PHP ভার্সন বদলানো। আর যেটা কেউ বলে না — দুটো সিকিউরিটি প্লাগিন একসাথে চালালে দুটোই আধা-খেঁচড়া কাজ করে এবং সাইট ভারী হয়ে যায়; একটাই বেছে নিন, সেটাই ঠিকমতো কনফিগার করুন।
নিরাপত্তা আসলে স্তরে স্তরে সাজানো একটা ব্যাপার — হোস্টিং স্তর (আপডেটেড PHP, আলাদা অ্যাকাউন্ট), অ্যাপ্লিকেশন স্তর (আপডেট, কম প্লাগিন), অ্যাক্সেস স্তর (2FA, সঠিক রোল) আর রিকভারি স্তর (ব্যাকআপ)। একটা প্লাগিন এর মধ্যে দুটো স্তরের একাংশ সামলায়। বাকি স্তরগুলোর মালিক আপনি নিজে না হলে ওগুলোর কোনো মালিক থাকে না।
ভুল ধারণা ৩: ‘সাইটে সবুজ তালা আছে, তাই সাইট নিরাপদ’
HTTPS ভিজিটরের ব্রাউজার আর আপনার সার্ভারের মাঝের রাস্তাটুকু এনক্রিপ্ট করে। ব্যস, ওইটুকুই। কেউ যদি ক্যাফের ওয়াই-ফাইতে বসে আপনার কাস্টমারের পাসওয়ার্ড চুরি করতে চায়, HTTPS সেটা ঠেকাবে। কিন্তু আপনার কনট্যাক্ট ফর্ম প্লাগিনে যদি ফাইল আপলোডের একটা ফাঁক থাকে, হ্যাকার সেই ফাঁক দিয়েই শেল ফাইল আপলোড করবে — এবং সেটাও HTTPS-এর ভেতর দিয়ে, চমৎকার এনক্রিপ্টেড অবস্থায়। তালাটা সবুজই থাকবে।
তাই HTTPS-কে ভাবুন ন্যূনতম শর্ত হিসেবে, অর্জন হিসেবে নয়। cPanel-এ AutoSSL বা Let’s Encrypt দিয়ে এটা বিনামূল্যেই পাওয়া যায়। সাথে দুটো কাজ সেরে ফেলুন: সব HTTP রিকোয়েস্ট ৩০১ রিডাইরেক্ট দিয়ে HTTPS-এ পাঠান, আর wp-config.php ফাইলে define('FORCE_SSL_ADMIN', true); লাইনটা যোগ করুন, যাতে অ্যাডমিন প্যানেল কখনো এনক্রিপশন ছাড়া না খোলে।
ভুল ধারণা ৪: ‘লগইন লিংক লুকিয়ে রেখেছি, কেউ খুঁজে পাবে না’
/wp-admin বদলে /amar-gopon-door করে রাখা মন্দ নয় — লগে বটের হুড়োহুড়ি কমে। কিন্তু এটাকে নিরাপত্তা ভাবলে ভুল করবেন, কারণ ইউজারনেম বের করার অন্তত তিনটা সহজ রাস্তা তখনো খোলা থাকে: ব্রাউজারে example.com/?author=1 লিখলে বহু সাইট লেখকের স্লাগ দেখিয়ে দেয়; /wp-json/wp/v2/users এন্ডপয়েন্ট ইউজারের তালিকা JSON আকারে ফেরত পাঠায়; আর পোস্টের নিচে ‘Posted by admin’ তো লেখাই থাকে। দরজা লুকিয়ে লাভ নেই, যদি চাবির নামটা দেয়ালে লেখা থাকে।
- টু-ফ্যাক্টর অথেনটিকেশন চালু করুন — Google Authenticator বা Authy দিয়ে TOTP কোড। পাসওয়ার্ড ফাঁস হয়ে গেলেও কেউ ঢুকতে পারবে না; এই তালিকার আর কোনো ব্যবস্থা এটা পারে না।
- লগইন চেষ্টা সীমিত করুন — পাঁচবার ভুল হলে ২০ মিনিটের ব্লক। বেশিরভাগ বট এতেই হাল ছেড়ে পরের ডোমেইনে চলে যায়।
- পাসওয়ার্ড ম্যানেজার ব্যবহার করুন এবং পুরোনো অ্যাডমিন মুছুন — Bitwarden ফ্রি; প্রতিটা সাইটের জন্য আলাদা ২০ অক্ষরের র্যান্ডম পাসওয়ার্ড। সাথে Users তালিকাটা একবার খুলুন — দুই বছর আগে যে ডেভেলপার কাজ করে গেছেন, তাঁর অ্যাডমিন অ্যাকাউন্টটা কি এখনো বসে আছে?
ভুল ধারণা ৫: ‘আপডেট দিলে সাইট ভেঙে যায়, তাই দেব না’
ভয়টা অমূলক নয় — আপডেটে সাইট সত্যিই ভাঙে, বিশেষ করে থিম যদি সরাসরি কাস্টমাইজ করা থাকে। কিন্তু হিসাবটা উল্টো দিক থেকে করে দেখুন। হ্যাক হওয়া WordPress সাইটে ঢোকার দরজা বেশিরভাগ সময়েই একটা পুরোনো প্লাগিন — কোর WordPress নয়, আপনার পাসওয়ার্ডও নয়। প্রক্রিয়াটা পুরোপুরি যান্ত্রিক: কোনো প্লাগিনের দুর্বলতা প্রকাশিত হয়, ২৪ থেকে ৭২ ঘণ্টার মধ্যে তার প্রুফ-অফ-কনসেপ্ট পাবলিক হয়ে যায়, তারপর বট বাহিনী গোটা ইন্টারনেট চষে বেড়ায় ঠিক সেই ভার্সনের খোঁজে। আপনি যে ‘পরে দেখব’ বলে দুই সপ্তাহ ফেলে রাখলেন, সেটাই তাদের খোলা জানালা।
- সাপ্তাহিক রুটিন বানান — কম ট্রাফিকের সময়ে (যেমন বৃহস্পতিবার সকাল) ২০ মিনিট বরাদ্দ। আপডেটের আগে UpdraftPlus দিয়ে একটা ফুল ব্যাকআপ, সময় লাগে দুই মিনিট।
- আয়ের উৎস হলে staging ব্যবহার করুন — হোস্টিংয়ে একটা staging সাবডোমেইন বানিয়ে সেখানে আগে আপডেট চালিয়ে দেখুন, তারপর লাইভে।
- অটো-আপডেট চালু করুন — Plugins পেজে প্রতিটা প্লাগিনের পাশেই ‘Enable auto-updates’ আছে। অন্তত ফর্ম, ক্যাশ আর সিকিউরিটি প্লাগিনের জন্য এটা অন রাখুন।
যে প্লাগিনটা গত ১২ মাসে একবারও আপডেট পায়নি, সেটা ‘স্থিতিশীল’ নয় — ওটা পরিত্যক্ত। WordPress.org-এ প্লাগিনের পেজে ‘Last updated’ আর ‘Tested up to’ লেখা থাকে। পরিত্যক্ত প্লাগিন সরিয়ে রক্ষণাবেক্ষণে থাকা বিকল্প খুঁজে নিন, আর নিষ্ক্রিয় করে রাখা প্লাগিনগুলো একেবারে Delete করে দিন — Deactivate করলে ফাইল সার্ভারেই থেকে যায় এবং সরাসরি রিকোয়েস্ট দিয়ে এক্সপ্লয়েট করা সম্ভব।
ভুল ধারণা ৬: ‘হোস্টিং কোম্পানি ব্যাকআপ রাখে, আমার আলাদা কিছু লাগবে না’
রাখে, বেশিরভাগ ক্ষেত্রেই রাখে। কিন্তু তিনটা প্রশ্ন করুন এবং উত্তরগুলো লিখে রাখুন: ব্যাকআপটা কোথায় রাখা — একই সার্ভারে, নাকি আলাদা জায়গায়? সবচেয়ে নতুন কপিটা কত পুরোনো — গত রাতের, নাকি গত রোববারের? আর রিস্টোর করতে কত সময় ও কত টাকা লাগবে? শেয়ার্ড হোস্টিংয়ে বহু ক্ষেত্রেই উত্তর দাঁড়ায় — একই সার্ভারে, সাপ্তাহিক, এবং রিস্টোরের জন্য আলাদা ফি সহ ৪৮ ঘণ্টার সাপোর্ট টিকিট। সার্ভার নিজেই যদি মরে যায়, তার ভেতরে রাখা ব্যাকআপও সাথে মরে।
তাই ৩-২-১ নিয়মটা মেনে চলুন: তিনটা কপি, দুই ধরনের মাধ্যমে, অন্তত একটা সাইটের বাইরে। বাস্তবে এর মানে দাঁড়ায় — UpdraftPlus-এর ফ্রি ভার্সন দিয়ে সপ্তাহে একবার ফুল ব্যাকআপ সরাসরি Google Drive বা Dropbox-এ পাঠানো। খরচ শূন্য, সেটআপে সময় লাগে দশ মিনিট। আর সবচেয়ে জরুরি কাজটা হলো তিন মাসে অন্তত একবার সেই ব্যাকআপ থেকে একটা টেস্ট সাইটে রিস্টোর করে দেখা — কারণ যে ব্যাকআপ কখনো রিস্টোর করে পরখ করা হয়নি, সেটা ব্যাকআপ নয়, ওটা নিছক একটা জিপ ফাইল।
আপনার সাইটে যদি WooCommerce থাকে এবং bKash বা নগদের পেমেন্ট গেটওয়ে যুক্ত থাকে, ঝুঁকির অঙ্কটা অন্য মাত্রা পায়। তখন হ্যাক মানে শুধু সাইট ডাউন নয় — চেকআউট পেজে বসানো একটা ছোট স্ক্রিপ্ট কাস্টমারকে ভুয়া পেমেন্ট পেজে পাঠিয়ে দিতে পারে, আর সেই দায় গিয়ে পড়ে আপনার ব্র্যান্ডের ঘাড়ে। ঈদের আগের সপ্তাহে দুই দিন সাইট বন্ধ থাকার ক্ষতিটা একবার টাকায় হিসাব করে দেখুন; বছরে কয়েক হাজার টাকার রক্ষণাবেক্ষণ খরচটা তখন সস্তা মনে হবে।
সাধারণ কিছু প্রশ্ন
সিকিউরিটি প্লাগিনের ফ্রি ভার্সনই কি যথেষ্ট? ছোট ব্রোশিওর সাইট বা ব্লগের জন্য Wordfence বা Solid Security-র ফ্রি ভার্সন যথেষ্ট — মূল সুরক্ষার কাজগুলো ওখানেই আছে। পেইড ভার্সনের আসল সুবিধা হলো নতুন দুর্বলতার ফায়ারওয়াল রুল সাথে সাথে পাওয়া; ফ্রি ইউজাররা সাধারণত সেটা ৩০ দিন পরে পান। যেখানে টাকা লেনদেন হয় — WooCommerce স্টোর, বুকিং সাইট — সেখানে এই ৩০ দিনের ফারাকটাই আসল প্রশ্ন।
হ্যাক হয়েছে কি না বুঝব কীভাবে? গুগলে site:yourdomain.com লিখে সার্চ করুন — আপনার প্রকাশ না করা পেজ (ওষুধ, জুয়া, রেপ্লিকা ঘড়ি) দেখালে ধরে নিন সমস্যা আছে। Google Search Console-এর Security Issues সেকশনটা দেখুন। হঠাৎ সার্ভার রিসোর্স বা আউটগোয়িং মেইল বেড়ে গেছে কি না খেয়াল করুন। আর wp-content/uploads ফোল্ডারে কোনো .php ফাইল আছে কি না দেখুন — ওই ফোল্ডারে PHP ফাইল থাকার কোনো বৈধ কারণ নেই।
সাইট হ্যাক হলে প্রথম কাজ কী? ক্রমটা উল্টো করলেই বিপদ। আগে সব পাসওয়ার্ড বদলান (WordPress অ্যাডমিন, cPanel, ডাটাবেজ ইউজার, FTP), তারপর wp-config.php-র আটটা সল্ট কি নতুন করে বসান — এতে হ্যাকারের চালু সেশনসহ সব সেশন লগআউট হয়ে যায় — এবং তারপর ফাইল ক্লিন বা রিস্টোর করুন। আগে ক্লিন করে পরে পাসওয়ার্ড বদলালে আক্রমণকারী মাঝখানে আবার ঢুকে বসে থাকে।
নাল্ড থিম বা প্লাগিন কি সত্যিই এত বিপজ্জনক? হ্যাঁ। চার-পাঁচ হাজার টাকার লাইসেন্স বাঁচাতে গিয়ে যে ফাইলটা নামালেন, তার ভেতরে base64-এনকোড করা ব্যাকডোর থাকা খুবই সাধারণ ঘটনা — এবং আপনার সিকিউরিটি প্লাগিন সেটাকে ‘থিমের বৈধ ফাইল’ ভেবে ছেড়ে দিতে পারে। ক্লিনআপের বিল প্রায় সবসময়ই মূল লাইসেন্সের কয়েক গুণ।
স্ট্যাক অ্যালিক্স-এ আমরা যেকোনো WordPress সাইট ক্লায়েন্টকে বুঝিয়ে দেওয়ার আগে এই তালিকাটা ধরে ধরে মিলিয়ে নিই — আপডেট রুটিন, অফ-সাইট ব্যাকআপ, 2FA আর সঠিক রোল সেটআপ। আপনার চালু সাইটটা একবার দেখিয়ে নিতে চাইলে আমাদের সাথে কথা বলুন; কোথায় ফাঁক আছে সেটা জানতে খরচ নেই, কিন্তু না জানার খরচটা অনেক বেশি।

