چگونه پیشوند دیتابیس را جهت ارتقا امنیت در وردپرس تغییر دهیم
دیتابیس در وردپرس مانند هسته پیکره کلی سایت است زیرا تمام داده ها در آنجا ذخیره میشود بنابراین یک هدف مطلوب برای هکر هاست. اسپم گذاران و هکرها کدهای اتوماتیکی را برای تزریق به SQL اجرا میکنند. متاسفانه بسیاری از کاربران فراموش میکنند پیشوند دیتابیس را زمانی که وردپرس را نصب میکنند تغییر دهند. عدم تغییر پیشوند پیش فرض جداول یعنی _wp، نقشه کشیدن را جهت یک اتک قوی برای هکرها تسهیل میکند. در این موقعیت هوشمندانه ترین راه حل این است که دیتابیس خود را بوسیله تغییر پیشوند جداول دیتابیس که بسیار ساده هم روی سایت ها قابل تنظیم است محافظت کنید. چند مرحله کوتاه وجود دارد که با آنجام آن میتوانید پیشوند جداول دیتابیس را، بدون از بین بردن آن ، برای سایتی که آنلاین است، به درستی تغییر دهید.
آماده سازی
توصیه میکنیم قبل از انجام هر اقدامی که در این مقاله پیشنهاد شده از دیتابیس وردپرس خود یک بکاپ بگیرید. این موضوع بسیار مهم است که از سایت خود بصورت روزانه بکاپ تهیه کنید، در اینجا ما استفاده از پلاگین BackupBuddy را برای این کار توصیه میکنیم. اقدام بعدی که توصیه میکنیم این است که یک صفحه تهیه کنید و در آن از بازدیدکنندگان بخاطر تاخیر بوجود آمده و دردسترس نبودن سایت عذرخواهی کنید.
تغییر پیشوند جداول در wp-config.php
فایل wp-config.php را که در دایرکتوری ریشه وردپرستان است باز کنید. خط پیشوند جداول را از wp_ به هرچیزی که دوست دارید مثل wp_a123456_ تغییر دهید.
با انجام این کار این خط مانند تکه کد زیر خواهد شد:
$table_prefix = 'wp_a123456_';
توجه: همچنین میتوانید آن را به اعداد، حروف کوچک یا بزرگ تغییر دهید.
تغییر تمام نام های جداول
لازم است به دیتابیس خود دسترسی پیدا کنید ( اکثر کاربران بوسیله phpMyadmin اینکار را انجام میدهند) و سپس نام جدول را به همان نامی که در فایل wp-config.php مشخص کردید، تغییر دهید. اگر از میزبانی وب وردپرس سی پنل استفاده میکنید، بنابراین میتوانید لینک phpMyAdmin را در جایی مانند تصویر زیر پیدا کنید.
11 جدول وردپرس بصورت پیش فرض وجود دارد، بنابراین تغییر آنها بصورت دستی سخت خواهد بود.
به همین علت است که ما با استفاده از یک کوئری SQL که در تکه کد زیر آمده این کار را انجام میدهیم.
RENAME table `wp_commentmeta` TO `wp_a123456_commentmeta`; RENAME table `wp_comments` TO `wp_a123456_comments`; RENAME table `wp_links` TO `wp_a123456_links`; RENAME table `wp_options` TO `wp_a123456_options`; RENAME table `wp_postmeta` TO `wp_a123456_postmeta`; RENAME table `wp_posts` TO `wp_a123456_posts`; RENAME table `wp_terms` TO `wp_a123456_terms`; RENAME table `wp_termmeta` TO `wp_a123456_termmeta`; RENAME table `wp_term_relationships` TO `wp_a123456_term_relationships`; RENAME table `wp_term_taxonomy` TO `wp_a123456_term_taxonomy`; RENAME table `wp_usermeta` TO `wp_a123456_usermeta`; RENAME table `wp_users` TO `wp_a123456_users`;
ممکن است مجبور باشید این خطوط را برای پلاگین های دیگری که در دیتابیس جداول خود را دارند نیز انجام دهید. پیشنهاد ما این است که پیشوند تمام جداول را بصورت یکپارچه به چیزی که میخواهید، تغییر دهید.
جدول Options
در اینجا نیاز داریم تا جدول گزینه ها (Options table) را برای هر فیلد دیگری که در حال استفاده از wp_ بعنوان پیشوند است، جستجو کنیم تا بتوانیم آنها را جایگزین کنیم. جهت تسهیل روند کار از کوئری زیر استفاده کنید:
SELECT * FROM `wp_a123456_options` WHERE `option_name` LIKE '%wp_%'
این کوئری نتایج زیادی را برمیگرداند و نیاز است که تک تک آنها را برای تغییر خطوط بررسی کنید.
جدول UserMeta
کار بعدی که باید انجام دهیم این است که usermeta را برای تمام فیلدهایی که از wp_ بعنوان پیشوند استفاده میکنند جستجو کنیم تا بتوانید آنها را جایگزین کنیم. از کوئری sql که در زیر آمده برای این کار استفاده کنید:
SELECT * FROM `wp_a123456_usermeta` WHERE `meta_key` LIKE '%wp_%'
تعداد نتایج بدست آمده ممکن است براساس تعداد پلاگین هایی که شما استفاده میکنید متفاوت باشد. تنها هر چیزی که پیشوند wp_ دارد را به پیشوند جدیدی که انتخاب کردید تغییر دهید.
بکاپ گیری و پایان
اکنون آماده اید که سایت را تست کنید. اگر تمام مراحل بالا را انجام داده باشید، همه چیز باید به خوبی کار کند. اکنون، باید یک بکاپ جدید از دیتابیس خود بگیرید و آن را در محل امنی قرار دهید.
امیدواریم این مقاله را مفید دیده باشید.اگر دیدگاهی درمورد این مطلب دارید میتوانید زیر همین پست کامنت بگذارید.
سلام
ممنون از مقاله خیلی خوبتون
یک سوال داشتم و اونم اینکه من فایل های ویدئویی سایتم بصورت پیش فرض ورد پرس ذخیره شده اند میخام همه را در یک پوشه ویدئو ها دخیره کنم چطور اینکار را انجام بدم که مشکلی پیش نیاد چون میخام همه فایل های ویدئوی ام که حدود ۴۰ تا است را در یک پوشه ذخیره کنم که اگر لازم شد انها را در یک فرصت دیگر بتونم روی یک هاست دانلود بزارم تا از فضای هاست اصلی ام استفاده نکند
منظوره پست هایی است که قبل در سایت گذاشتیم
بازم ممنون از وقتی که برای ما می گذارید