یک سری کارهای ساده هست که در صورتی که آدم، آنها را جدی نگیرد مشکلات امنیتی ایجاد میکند یکی از اینکارها تغییر هرچیزی است که هنگام ساخت یک سایت وردپرسی یه صورت پیشفرض در نظر گرفته شده است مثل پیشوند نام جدولها در پایگاه داده وردپرس که به صورت پیشفرض مقدار ـwp را دارد، که هکر ها با استفاده از حملات خاصی از این مقدار پیشفرض میتوانند سوءاستفاده کنند و به سایت شما نفوذ کنند برای همین در هنگام نصب این مقدار را حتما تغییر دهید در صورتی که اینکار را در هنگام نصب انجام ندادهاید ادامه این مطلب را بخوانید تا یک راه حل برای تغییر پیشوند را فرابگیرید.
آماده سازی
به شما پیشنهاد میکنیم که حتما قبل از انجام دادن کارهای دیگر از پایگاه داده خود یک بکاپ بگیرید و یک صفحه برای وقتی که مراجعه کننده به سایت میاید و شما در حال تغییر پیشوند هستید بسازید که با اخطار وحشتناکی مواجه نشود که این کار را با افزونه Maintenance Mode میتوانید انجام دهید.
ویرایش wp-config.php
فایل wp-config.phpرا که در شاخه اصلی وردپرس بر روی هاست قرار دارد را باز کنید و خط table_prefix را بیابید و مقدار wp_ را به یک مقدار دلخواه مثل wp_a123456_ تغییر دهید:
$table_prefix = 'wp_a123456_';
مقدار جدید می تواند شما حروف، اعداد و خط underscore باشد.
تغییر پیشوند جدولها
خوب در این مرحله باید به پایگاه داده سایتتان دسترسی پیدا کنید و نام جدولها را به آنچه که در فایل wp-config.php نوشتید، تغییر دهید برای اینکار از ابزار phpMyAdmin استفاده میکنیم اگر از cPanel استفاده میکنید در قسمت databases به این ابزار میتوانید دسترسی پیدا کنید. بعد از بازکردن phpMyAdmin برروی نام پایگاه داده ای که به سایت وردپرسیتان اختصاص دادهاید، کلیک کنید تا جدولها نمایش داده شود.
۱۱ جدول به صورت پیشفرض در پایگاه داده وردپرس موجود است که تغییر دستی تک تک آنها حوصله می خواهد 🙂
با یک دستور SQL این تغییر میتوانید انجام دهید ابتدا گزینه SQL را انتخاب کنید(نشان داده شده در شکل بالا) و در آن کد زیر را وارد کنید فقط حواستان باشد که مقداری را که در فایل wp-config وارد کرده اید را با مقداری که در کد زیر است عوض کنید و اگر فیلد دیگری در جدول به خاطر افزونه ای وجود دارد را به دستور زیر اضافه نمایید.
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_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 نیز ممکن است فیلدهایی با پیشوند wp_ وجود داشته باشد که باید آن هارا نیز تغییر دهید که اینکار را میتوانید دستی انجام دهید یا از دستور زیر استفاده کنید:
SELECT * FROM `wp_a123456_options` WHERE `option_name` LIKE '%wp_%'
البته این دستور فیلدها را به شما نمایش میدهد و شما باید یکی یکی تغییر دهید.
و در آخر جدول UserMeta را نیز مانند option باید ویرایش کنید که دستور پیدا کردن فیلد ها این هست:
SELECT * FROM `wp_a123456_usermeta` WHERE `meta_key` LIKE '%wp_%'
که با توجه به تعداد افزونه هایی که نصب کردید فیلدهایی که wp _ در آن به کار رفته باشد را نمایش می دهد که شما دستی آنها را باید ویرایش کنید.
خوب اگر مراحل را به درستی طی کرده باشید سایت وردپرسی شما به درستی کار خواهد کرد و امنتر نیز شده است.
hoda
سلام وقت بخیر..موقع تغییر پیشوند جدلای پایگاه داده با این ارور روبرو میشم RENAME TABLE `wp_commentmeta` TO `oat__commentmeta` ;
ممنون میشم راهنمایی کنید..
علی
سلام توی بخش تغییر پیشوند جدولها سایت من با مشکل رو به رو شده زمانی که توی phpMyAdmin میری روی هر چیزی که کلیک میکنی ارور Token mismatch میده
ممکنه راهنمایی کنید
سینا
سلام
افزونه ای برای انجام این کار هستش ولی یه سوالی که پیش میاد اینه که این افزونه ها میتونه امنیتی که با تغییر دستی برای ما به ارمغان میاد تامین کنه یا نه ؟
RaminMT
درود
نکته ای دیدم به نظرم اومد بد نیست متذکر بشم و اون هم همون جاست که فرمودید “دستی” مقادیر رو به روز کنید!!! میخواستم بدونم آیا با کوئری آپدیت آشنا هستید یا نه؟! به راحتی میشه اینکارو با کوئری آپدیت انجام با همون شرطی که نوشتید
پارسی فایل
واقعا مفید و خوب بود , ممنون
سید
سلام
خیلی عالی بود
یکی از چیزهایی که احتیاج داشتم همین بود واقعا ممنون
hos7ein
درود بر شما
سپاس از مطلب خوبتون
البته این رو بگم که یه افزونه ای هست که اینکار رو هم انجام میده