যেকোন WordPress website-এর জন্য WordPress Database সবচেয়ে বড় সম্পদ। এটি একটি website-এর সমস্ত গুরুত্বপূর্ণ তথ্য যেমন- ব্যবহারকারীর তথ্য, site-এর URL, post, page, comment, Custom fields ইত্যাদি সংরক্ষণ করে৷ এটি ভুলভাবে সুরক্ষিত WordPress Database Hacker-দের জন্য একটি উন্মুক্ত আমন্ত্রণের মতো৷ এই Article-এ আমরা আলোচনা করব কিভাবে WordPress Database সুরক্ষিত করা যায়।
WordPress Database-কে দক্ষতার সাথে সুরক্ষিত করার জন্য আমাদের জানা উচিত কীভাবে WordPress Database ব্যবহার করে, Database-এর দুর্বলতাগুলি যা Hacker-দের দ্বারা প্রায়শই শোষিত হয় এবং কীভাবে এই দুর্বলতাগুলি এড়ানো যায়।
কিভাবে WordPress Database ব্যবহার করে?
WordPress একটি scripting ভাষা হিসাবে PHP ব্যবহার করে (Database থেকে Data সংরক্ষণ এবং পুনরুদ্ধার করার জন্য) এবং MySQL Database পরিচালনার জন্য ব্যবহৃত হয়, PHP markup-এর মধ্যে SQL কোয়েরি ব্যবহার করে। উদাহরণস্বরূপ, আপনি যদি একটি WordPress চালিত ব্যবসায়িক website-এ log in করেন, তবে এটি SQL যা আসলে আপনাকে log in করে, আপনার ব্যবহারকারী ID বের করে এবং এটিকে যাচাই করে এবং নিশ্চিত করে যে সঠিক Profile data সামনের প্রান্তে প্রদর্শিত হয়েছে।
PHP এবং SQL একসাথে কাজ করে। এটি WordPress-কে ব্যবহারকারীদের জন্য একটি গতিশীল বিষয়বস্তু-ভিত্তিক অভিজ্ঞতা তৈরি করতে সহায়তা করে। এটি আপনাকে নির্দিষ্ট ব্যবহারকারীদের জন্য নির্দিষ্ট বিষয়বস্তু Customize করার অনুমতি দেয়, যেমন Admin, Editor এবং customer.
Plugin এবং থিমগুলি ডাটা সঞ্চয় করতে WordPress database ব্যবহার করে। তারা ডাটাবেজ এবং আউটপুট বিষয়বস্তু গতিশীলভাবে সার্চ করতে PHP markup-এর মধ্যে SQL ব্যবহার করে। অন্যান্য plugin যেমন WP-DB manager, সহজেই ডাটাবেজ পরিচালনা করতে ব্যবহার করা যেতে পারে।
কিভাবে WordPress database সুরক্ষিত করবেন?
WordPress database হল একটি WordPress website-এর মস্তিষ্ক। কারণ এটি পোস্ট, পেইজ, কমেন্ট, ট্যাগ, ইউজার/ব্যবহারকারী, ক্যাটাগরি, কাস্টমের ক্ষেত্র এবং অন্যান্য সাইট-এর বিকল্পগুলির মতো ওয়েবসাইট-এর সমস্ত তথ্য সংরক্ষণ করে। এটি ক্ষতিকর অভিনেতাদের জন্য একটি juicy লক্ষ্য করে তোলে। Spammer এবং Hacker-রা SQL injection-এর জন্য স্বয়ংক্রিয় কোড চালায়। আপনি কিভাবে WordPress database সুরক্ষিত করতে পারেন তা এখানে।
1. Administrator user-এর নাম পরিবর্তন করুন
অন্যান্য CMS এর মত, WordPress -এরও একটি Default administrator login রয়েছে। Default admin login পরিবর্তন না করায় ক্ষতিকর অভিনেতাদের পক্ষে আপনার website এবং database-এ অবৈধভাবে Access লাভ করা সহজ করে তোলে।
WordPress-এ default user-এর নাম এডমিন। আপনি ইতিমধ্যে এটি পরিবর্তন না করে থাকলে এখন করুন।
- phpMyAdmin এ যান।
- এটি থেকে user নাম পরিবর্তন করে
।
UPDATE {database_prefix}users SET user_login='anything' WHERE user_login='admin'; - একটি WordPress Multisite-এর ক্ষেত্রে, আপনি ব্যবহার করতে পারেন
grant_super_admin (
Super admin access এবং Function grant super admin privileges function)
.
2. Administrator ID পরিবর্তন করুন
WordPress-এ Default admin নাম হচ্ছে এডমিন এবং Default admin user ID হল 1। অনেক SQL-injection attack এটিকে কাজে লাগিয়েছে। সুতরাং, WordPress database সুরক্ষিত করতে আপনার এটিকে প্রথম দিকে পরিবর্তন করা উচিত। admin user ID পরিবর্তন করতে,
- phpMyAdmin এ যাও।
- নিম্নলিখিত প্রশ্নগুলি run করুন।
UPDATE wp_users SET ID = 2807 WHERE ID = 1;
UPDATE wp_posts SET post_author = 2807 WHERE post_author = 1;
UPDATE wp_comments SET user_id = 2807 WHERE user_id = 1;
UPDATE wp_usermeta SET user_id = 2807 WHERE user_id = 1;
ALTER TABLE wp_users AUTO_INCREMENT = 2808
3. WordPress Multisite-এর ক্ষেত্রে, আপনাকে কয়েকটি লাইন Duplicate করতে হবে।যেমনঃ
UPDATE wp_2_posts SET post_author = 5487 WHERE post_author = 1;
UPDATE wp_2_comments SET user_id = 5487 WHERE user_id = 1;
3.Database prefix পরিবর্তন করুন
Default WordPress database prefix হয় WP
. একটি সুরক্ষিত WordPress database-এর জন্য, WordPress installation প্রক্রিয়ার সময়ই আপনার Default prefix পরিবর্তন করার জন্য সুপারিশ করা হয়।
আপনি ইতিমধ্যে না থাকলে, এখন এটি করুন। এই পদক্ষেপগুলি অনুসরণ করুনঃ
- একটি FTP client-এর মাধ্যমে আপনার Website Access করুন।
- wp_config.php root directory-তে আপনার configuration file navigate করুন।
- সঙ্গে লাইন খুঁজুন wp_ prefix এবং এটি পরিবর্তন করুন।
$table_prefix = 'wp_ga2807_';
- সমস্ত Default WordPress database টেবিলের নাম পরিবর্তন করুন।
RENAME TABLE wp_comments TO wp_ga2807_comments;
RENAME TABLE wp_commentmeta TO wp_ga2807_commentmeta;
RENAME TABLE wp_links TO wp_ga2807_links;
RENAME TABLE wp_options TO wp_ga2807_options;
RENAME TABLE wp_postmeta TO wp_ga2807_postmeta;
RENAME TABLE wp_posts TO wp_ga2807_posts;
RENAME TABLE wp_terms TO wp_ga2807_terms;
RENAME TABLE wp_termmeta TO wp_ga2807_termmeta;
RENAME TABLE wp_term_relationships TO wp_ga2807_term_relationships;
RENAME TABLE wp_term_taxonomy TO wp_ga2807_term_taxonomy;
RENAME TABLE wp_usermeta TO wp_ga2807_usermeta;
RENAME TABLE wp_users TO wp_ga2807_users;
- এর সমস্ত দৃষ্টান্ত প্রতিস্থাপন করুন
wp_
ভিতরেwp_ga2807_usermeta
এবংwp_ga2807_options
(প্রাক্তনwp_usermeta
এবংwp_options
যথাক্রমে টেবিল)।UPDATE wp_ga2807_options SET option_name = REPLACE(option_name, 'wp_', 'wp_ga2807_') WHERE option_name LIKE 'wp_%';
UPDATE wp_ga2807_usermeta SET meta_key = REPLACE(meta_key, 'wp_', 'wp_ga2807_') WHERE meta_key LIKE 'wp_%';
- Plugin database তাদের নিজস্ব টেবিল তৈরি করে। এই টেবিলগুলির নাম পরিবর্তন করাও গুরুত্বপূর্ণ। উদাহরণস্বরূপ WooCommerce একটি বহুল ব্যবহৃত WordPress plug-ins। WooCommerce-এ টেবিলের নাম পরিবর্তন করতে নিম্নলিখিত প্রশ্নগুলি চালান।
RENAME TABLE wp_woocommerce_api_keys TO wp_ga2807_woocommerce_api_keys;
RENAME TABLE wp_woocommerce_attribute_taxonomies TO wp_ga2807_woocommerce_attribute_taxonomies;
RENAME TABLE wp_woocommerce_downloadable_product_permissions TO wp_ga2807_woocommerce_downloadable_product_permissions;
RENAME TABLE wp_woocommerce_order_itemmeta TO wp_ga2807_woocommerce_order_itemmeta;
RENAME TABLE wp_woocommerce_order_items TO wp_ga2807_woocommerce_order_items;
RENAME TABLE wp_woocommerce_payment_tokenmeta TO wp_ga2807_woocommerce_payment_tokenmeta;
RENAME TABLE wp_woocommerce_payment_tokens TO wp_ga2807_woocommerce_payment_tokens;
RENAME TABLE wp_woocommerce_sessions TO wp_ga2807_woocommerce_sessions;
দ্রষ্টব্য: আপনি একটি plugin-এর সাহায্যে Database prefix-ও পরিবর্তন করতে পারেন। ‘Change table prefix’ এর জন্য একটি সুবিধাজনক plugin.
4. Strict database user privileges
Strict user privileges আরও নিরাপদ WordPress database. MySQL user নির্দিষ্ট wp-config.php file-এর কঠোর অধিকার থাকা উচিত। installation-এর সময়, database user-এর প্রয়োজনীয় টেবিল এবং object set করার সমস্ত সুবিধা রয়েছে তবে এটি একটি অস্থায়ী পরিমাপ হওয়া উচিত। Installation-এর পরে, MySQL user-এর শুধুমাত্র DATA READ এবং DATA WRITE সুবিধার প্রয়োজন৷
5. Backup তৈরি করুন
আপনার Website বা database-এ কোনো পরিবর্তন করার আগে Backup তৈরি করুন। আমি আবার বলছি, Backup তৈরি করুন! নিয়মিত Bacup তৈরি করা সংক্রমণের ক্ষেত্রে খুব সহায়ক হতে পারে। আপনি কেবল Backup পুনরুদ্ধার করতে পারেন এবং সংক্রামিত file-গুলি সরাতে পারেন।
কিন্তু ব্যাকআপ দিয়েও আক্রমণকারী যে দুর্বলতাকে কাজে লাগিয়েছিল তা পুনরুদ্ধার করা হয়নি। আপনি সাইন আপ করতে পারেন Astra Vulnerability assessment এবং penetration testing আপনার ওয়েবসাইটে সমস্ত লুকানো backdoor এবং নিরাপত্তা দুর্বলতা উন্মোচন করতে।
6. Custom টেবিল মুছুন
এটি সুপারিশ করা হয় যে আপনি আপনার সাইট থেকে একটি Website Extensions মুছে ফেলার পরে আপনার ডাটাবেজ থেকে কাস্টম টেবিলগুলি মুছে ফেলুন, অন্যথায় সারাজীবন আপনি আপনার ডাটাবেজ-এ অব্যবহৃত টেবিলের স্তূপ সংগ্রহ করবেন৷ আপনি যখন এটি Uninstall করেন তখন কিছু Plugin, website এবং database থেকে এর সমস্ত dastaস্বয়ংক্রিয়ভাবে মুছে ফেলার বিকল্পের সাথে আসে।
দ্রষ্টব্য: শুধুমাত্র Plugin–গুলির জন্য টেবিলগুলি মুছুন যা আপনি নিশ্চিতভাবে আবার install করবেন না। কারণ একবার Custom টেবিলগুলি মুছে ফেলা হলে আর ফিরে যাওয়া হবে না৷
উপসংহার
এমনকি সমস্ত সঠিক ব্যবস্থা নিয়েও 100% নিরাপত্তা নিশ্চিত করা যায় না।Hacker-রা Website এবং database-এ access পাওয়ার নতুন উপায় খুঁজে পাচ্ছে। সর্বোপরি একটি Firewall Install করা হল আপনার wordpress-কে যেকোন হুমকির অনুরোধ থেকে বাঁচানোর সর্বোত্তম উপায়। সঙ্গে Astra এর Firewall আপনার Website এর নিরাপত্তার যত্ন নেওয়ার মাধ্যমে আপনি আপনার ব্যবসার বৃদ্ধিতে আপনার Focus পরিচালনা করতে পারেন।