ওয়ার্ডপ্রেস ফাইল ও ডিরেক্টরি আপনার সাইট নিরাপদ রাখতে অত্যন্ত গুরুত্বপূর্ণ ভূমিকা পালন করে। ওয়ার্ডপ্রেস ইনস্টল করার পর সেগুলো সঠিকভাবে সেট করা আপনার সর্বোচ্চ অগ্রাধিকার হওয়া উচিত। কে কোন ফাইল দেখবে এবং ব্যবহারকারী কী ক্রিয়া করতে পারবে — সেটি ঠিকমতো নির্ধারণ করলে আপনার সাইটের নিরাপত্তা অবস্থান ব্যাপকভাবে উন্নত হয়। এই পোস্টে আমরা আলোচনা করব কীভাবে PHP এক্সিকিউশন এবং ডিরেক্টরি ব্রাউজিং নিষ্ক্রিয় করলে আপনার সাইটের নিরাপত্তা বাড়ে।
PHP এক্সিকিউশন বন্ধ করুন: কেন এবং কীভাবে?
ওয়ার্ডপ্রেসের কিছু ফোল্ডার যেমন আপলোডস, থিম বা প্লাগইন ডিফল্টভাবে রাইটেবল (লিখনযোগ্য) থাকে। এই অনুমতি ব্যবহারকারীদের সাইটে ছবি ও ভিডিও আপলোড করতে বা থিম ও প্লাগইন ইনস্টল করতে দেয়। প্রতিবার প্লাগইন বা থিম ইনস্টল করলে তাদের সংশ্লিষ্ট ফোল্ডারে নতুন ফাইল সংরক্ষিত হয়। যদি থিম ও প্লাগইন ফোল্ডার রাইটেবল না হত, তবে এটা সম্ভব হত না।
লোকজন ওয়ার্ডপ্রেস পছন্দ করার এক বড় কারণ হল থিম ও প্লাগইন দিয়ে সহজে সাইট কাস্টোমাইজ করা। কেউ যেকোনো থিম বা প্লাগইন ইনস্টল করতে পারে কারণ থিম ও প্লাগইন ফোল্ডার ডিফল্টভাবে রাইটেবল। দুর্ভাগ্যবশত, এই অনুমতিই হ্যাকিং আক্রমণের সুযোগ করে দেয় — ফিশিং, এসইও স্প্যাম, ব্রুট ফোর্স আক্রমণ ইত্যাদি। হ্যাকাররা দূর থেকে দূষিত স্ক্রিপ্ট আপলোড করে এক্সিকিউট করতে পারে এবং সایتে পূর্ণাধিকার পেতে পারে অথবা সাইট ধ্বংস করতে পারে।
মেইলপোয়েট হ্যাক মনে করুন, যেখানে হ্যাকাররা আপলোড ফোল্ডারে দূষিত PHP কোড আপলোড করে সাইট নিয়ন্ত্রণে নিয়েছিল।
রাইট পারমিশন সরিয়ে ফেলা সুবিধাজনক নয় কারণ তখন আপনি ছবি আপলোড করতে পারবেন না, প্লাগইন বা থিম ইনস্টল করতে পারবেন না। তবে আপনি PHP এক্সিকিউশন বন্ধ করে সফল আক্রমণের সুযোগ কমিয়ে দিতে পারেন। এতে নির্দিষ্ট ফোল্ডারে এক্সিকিউশন পারমিশন হয়ে যায়।
PHP এক্সিকিউশন বন্ধ করার সহজ উপায় হল নির্দিষ্ট ফোল্ডারের .htaccess ফাইলে একটি বিশেষ কোড রাখা।
নোট: ফাইল পরিবর্তন করার আগে সাইটের ব্যাকআপ নিন। একক ভুলই সাইট ভাঙতে পারে বা সমস্যা সৃষ্টি করতে পারে। ব্যাকআপ থাকলে সমস্যা হলে দ্রুত কাজের কপি ফিরিয়ে আনা যায়।
ধাপ ১: আপলোডস ফোল্ডারে PHP এক্সিকিউশন বন্ধ করতে, আপলোড ফোল্ডারে একটি .htaccess ফাইল তৈরি করুন। পাবলিক_এইচটিএমএল-এর অধীনে wp-content-এ এই ফোল্ডারটি পাবেন।
ধাপ ২: এখন নোটপ্যাড (উইন্ডোজ) বা টেক্সটএডিট (ম্যাক) খুলে একটি ফাইল তৈরি করুন। নিচের কোডটি যোগ করে ফাইলটি .htaccess নামে সংরক্ষণ করুন (নয় .htaccess.txt):
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
ধাপ ৩: কোড সংরক্ষণ করে আপলোড ফোল্ডারে আপলোড করুন।
ধাপ ৪: এখন আপলোড ফোল্ডারে নতুন .htaccess ফাইল আছে। রাইট-ক্লিক করে এডিট নির্বাচন করুন। আপনার নতুন .htaccess ফাইলে নিচের কোডটি রাখুন।
<FilesMatch “\.(php|php\.)$”> Order Allow,Deny Deny from all </FilesMatch>
নিচের ছবিতে আমরা আমাদের .htaccess ফাইলে কোডটি রাখেছি।
এটি নিশ্চিত করে যে "PHP" এক্সটেনশনযুক্ত যেকোনো ফাইল ধরা পড়বে এবং এক্সিকিউট হতে পারবে না। যদি হ্যাকার "mailciousPHPFileDisguisedAsJPEFfile.php.jpg" মতো ফাইল আপলোড করে, তবে সেটি এক্সিকিউট হতে পারবে না।
সর্বোচ্চ নিরাপত্তার জন্য, প্লাগইন ও থিম ফোল্ডারের .htaccess ফাইলেও এই কোড যোগ করতে পারেন।
ম্যানুয়ালি PHP এক্সিকিউশন বন্ধ করা কিছুটা ঝুঁকিপূর্ণ। ফাইল ম্যানেজারে খুব সাবধানে যেতে হয়। একক ভুল গम्भীর ক্ষতি করতে পারে। প্লাগইন ব্যবহার করে PHP এক্সিকিউশন বন্ধ করা সহজ এবং কম ঝুঁকিপূর্ণ। ম্যালকেয়ার সিকিউরিটি সার্ভিসে সাইট হার্ডেনিং ফিচার আছে যা PHP এক্সিকিউশন ব্লক করতে দেয়।
এই ফিচার সক্রিয় করতে আপনার FTP ডিটেইলস লাগবে।
PHP এক্সিকিউশন বন্ধ করলে সাইটের নিরাপত্তা বাড়ে, কিন্তু আমরা এক ধাপ আরো आगे যেতে পারি ডিরেক্টরি ব্রাউজিং বন্ধ করে।
ডিরেক্টরি ব্রাউজিং বন্ধ করুন: কেন এবং কীভাবে?
কখনো কখনো ভিজিটররা সহজে ওয়ার্ডপ্রেস সাইটের ডিরেক্টরি লিস্টিং দেখতে পারে। উদাহরণস্বরূপ, আমাদের ওয়েস্টওয়ার্ল্ড ফ্যানসাইটের ভিজিটররা ব্রাউজারে "https://westworldfansite.com/wp-includes/" খুললে wp-includes ফোল্ডারের ফাইল লিস্ট দেখতে পায়।
এটি নিরাপদ লাগতে পারে কিন্তু ডিরেক্টরি লিস্টিং থেকে হ্যাকাররা সংবেদনশীল তথ্য পেয়ে সাইটে অ্যাক্সেস করতে পারে। তাই লিস্টিং লুকানো উচিত। নিরাপত্তা অস্পষ্টতাযρόপ সাধারণত নিন্দিত হলেও, যতটা সম্ভব তথ্য লুকিয়ে রাখা ভালো। হ্যাকাররা যত কম জানবে, আক্রমণের সম্ভাবনা তত কম।
সাইটের নিরাপত্তা বাড়াতে আমরা .htaccess ফাইলে নিচের কোড যোগ করে ডিরেক্টরি ব্রাউজিং বন্ধ করলাম।
মনে রাখবেন, .htaccess ফাইল পরিবর্তন করার আগে সাইটের ব্যাকআপ নিন। একক ভুল বড় সমস্যা সৃষ্টি করতে পারে। ব্যাকআপ থাকলে সমস্যা হলে দ্রুত কাজের কপি ফিরিয়ে আনা যায়।
যে ডিরেক্টরির ব্রাউজিং রোধ করতে চান তার .htaccess ফাইল এডিট করতে ভুলবেন না। উদাহরণস্বরূপ, wp-include ফোল্ডার প্রোটেক্ট করতে চাইলে wp-include ফোল্ডারের .htaccess ফাইলে নিচের লাইনটি যোগ করুন:
Options All –Indexes
কোড সংরক্ষণ করার পর ডিরেক্টরি লিস্টিং দেখতে চাইলে ৪০৩ এরর পেজ আসে।
এখন আপনার পালা
PHP এক্সিকিউশন ও ডিরেক্টরি ব্রাউজিং বন্ধ করলে ওয়েবসাইট নিরাপত্তা অবশ্যই উন্নত হয়, কিন্তু এটি ওয়ার্ডপ্রেস সাইটকে হ্যাক থেকে বাঁচানোর অনেক উপায়ের মাত্র একটি। অন্যান্য নিরাপত্তা ব্যবস্থা রয়েছে — সিকিউরিটি প্লাগইন ব্যবহার, SSL সার্টিফিকেট, অনন্য ও শক্তিশালী ইউজারনেম ও পাসওয়ার্ড, HTTP অথেন্টিকেশন এবং টু-ফ্যাক্টর অথেন্টিকেশন বাস্তবায়ন ইত্যাদি।