امنیت وردپرس
وردپرس به عنوان یکی از پرطرفدارترین اسکریپتهای تحت وب در بین بسیاری از وبمستران در حال استفاده است.
اما آیا تمامی این افراد امنیت سایت وردپرسی خود را تامین کردهاند؟ باید گفت نه و برای امنیت وردپرس باید این نوشته را به دقت خواند.
امنیت وردپرس
شما که وقت با ارزش خود را برای خواندن این نوشته گذاشتهاید قطعا از افرادی که این نوشته را نخواندهاند جلوتر خواهید بود. خب توصیههایی که برای حفظ امنیت سایت وردپرسی شما میکنیم به شرح زیر است:
افزایش امنیت وردپرس
صفحهی ورود به پنل وردپرس را از حالت پیشفرض تغییر دهید
اولین کاری که بعد از نصب وردپرس به عنوان مدیر یک سایت باید انجام دهید این است که صفحه ورود به پنل وردپرس را تغییر دهید. در حالت پیشفرض اسکریپت وردپرس صفحهی ورود به پنل را با wp-login.php نمایش میدهد که این صفحه را تمامی افراد مبتدی هم میدانند و یک مشکل امنیتی بزرگ برای شما به حساب خواهد آمد. شما میتوانید با افزونههای امنیتی مختلف مثل Lockdown WP Admin این تغییر را انجام دهید.
دائما بروزرسانی انجام دهید
شما باید توجه کنید که تمامی امکانات سایت وردپرسی خود را که در بخش بروزرسانی موجود است را بروزرسانی کنید. پر اهمیتترین بروزرسانی مخصوص به خود وردپرس است که همیشه نسخهی جدید این اسکریپت یا مدیریت محتوا آسیب پذیریهای کشف شده را حذف خواهد کرد. افزونهها و پوستههای سایت هم یکی از بخشهای دیگر بروزرسانیها هستند که در جای خود اهمیت ویژهای دارند.
از رمزهای عبور ساده استفاده نکنید
طبق آماری که از سایت های امنیتی مختلف ارائه میشود سایت های وردپرسی معمولا تا ۸ درصد ضعف رمز عبور ساده را دارند. برای ساخت یک رمز عبور قوی از کاراکترهای بیشتری استفاده کنید و در رمزعبور خود از حروف، اعداد، علائم ویژه و … استفاده کنید.
جلوگیری از تلاش بیش از حد برای ورود به پنل
در حالت معمول وردپرس کاری ندارد که چند باز رمز عبور خود را اشتباه وارد میکنید ولی گاهی ممکن است این ورود اشتباه توسط شما است و یک نفوذ کننده برای یافتن رمز شما از ربات یا موارد دیگر استفاده کند. شما به راحتی میتوانید با افزونههای مختلف مثل Limit Login Attempts این مشکل را حل کنید.
ویرایش فایل ها در پنل را مسدود کنید
باید بدانید که در صورتی که یک هکر به سایت شما نفوذ کند امکان ویرایش فایلهای اصلی شما را دارد که این مشکل را میتوانید با اضافه کردن کد زبر به فایل پیکربندی وردپرس یعنی wp-config.php حل کنید.
define( ‘DISALLOW_FILE_EDIT’, true );
پوسته و افزونههای نامعتبر نصب نکنید
سعی کنید برای نصب پوستهها و افزونهها از داخل پنل وردپرس خود اینکار را انجام دهید و پوستهها و افزونهها را به طور مستقیم نصب نکنید. در صورتی که قصد نصب به صورت دستی دارید سعی کنید پوستهها افزونهها را از سایتهای معتبر دریافت کنید.
حذف پیغام خطای رمز عبور در صفحهی ورود به پنل
اسکریپت یا مدیریت محتوای وردپرس در هنگام ورود وقتی نام کاربری را صحیح وارد کنید و در ورود رمز آن مشکل دارید به شما میگوید که رمز اشتباه است. یعنی تا اینجا یک هکر یکی از فیلدهای ورود را کشف کرده است و کارش سادهتر شده است. برای حل این مشکل در فایل functions.php قطعه کد زیر را وارد کنید.
add_filter('login_errors',create_function('$a', "return null;"));
همواره از سایت خود نسخه پشتیبان بگیرید
شما به عنوان یک مدیر بهتر است اطلاعات پشتیبان سایت خود در بازههای زمانی مختلف که بستگی به میزان اعتبار سایت شما دارد را نگهداری کنید که در صورتی بروز مشکلی یک نسخهی سالم از سایت خود را داشته است.
فایل پیکربندی وردپرس را ایمن کنید
فایل پیکربندی وردپرس که wp-config.php نام دارد شامل اطلاعاتی از قبیل نحوه اتصال به دیتابیس و موارد دیگر است که با کمک فایل پیکربندی سرور Apache که .htaccess نام دارد امنیت آن را حفظ کنید. برای اینکار کافیست شما کد زیر را به فایل .htaccess اضافه کنید.
<Files .htaccess>
order allow,deny
deny from all
</Files>
ضمنا برای اینکه امنیت wp-config.php را حفظ کنید ابتدا باید امنیت خود .htaccess را کامل کنید که برای اینکار مانند بالا این کد را هم به فایل .htaccess اضافه کنید.
<Files wp-config.php>
order allow,deny
deny from all
</Files>
دسترسی فایل xmlrpc.php را نیز در صورت عدم نیاز بهتر است ببندید:
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>
جلوگیری از نمایش نام کاربری شما در بالای نوشتهها
همانطور که میدانید در اغلب پوستههای وردپرسی نام شما بالای مطالب درج خواهد شد که به صورت پیشفرض این نام همان نام کاربری ورود به پنل وردپرس شماست. برای اینکه از نام خود محافظت کنید باید در بخش “ویرایش شناسهی من” در پنل خود نام قابل نمایش خود را به نامی دیگر تغییر دهید.
از کدهای امنیتی Captcha استفاده کنید
شاید باور نکنید ولی اغلب حملات اسپمرها را میتوانید با کدهای امنیتی یا Captcha ها جلوگیری کنید زیرا رباتها و اسپمرها امکان شناسایی آنها در اکثر مواقع ندارند.
شما با رعایت موارد بالا میتوانید بخش بزرگی از امنیت سایت خود را تامین کنید و در موارد ابتدایی نیازی به فردی برای تامین امنیت برای ورد پرست خود ندارید.
از ایندکس شدن دایرکتوریها جلوگیری کنید
برای اینکار در فایل .htaccess سایت خود کد زیر را قرار دهید:
Options -Indexes
صفحهی ورود سایتتان را تنها با https باز کنید
برای اینکار قطعه کد زیر را باید درون فایل wp-config.php سایت وردپرسی خود قرار دهید:
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) {
$_SERVER['HTTPS'] = 'on';
}
پیغام خطای صفحه ورود را نمایش ندهید
وردپرس به صورت پیشفرض پیغام خطای صفحه ورود را نشان میدهد و از این جهت امکان ردگیری علت خطا را برای افراد مخرب ایجاد میکند از این جهت کافیست تمام خطاها در صفحه ورود وردپرس یک شکل شوند تا خط و ربطی به این افراد ندهید. برای اینکار قطعه کد زیر را درون فایل functions.php قالب فعال وبسایت خود قرار دهید:
remove_action('wp_head', 'wp_generator');
function custom_login_error_message() {
return 'ورود ناموفق. لطفاً دوباره تلاش کنید.';
}
add_filter('login_errors', 'custom_login_error_message');



















ممنون از مقاله کاربردیتون
سپاس از نگاهتون.
موفق باشید.
آیا افزونههایی مثل Wordfence تغییر پرمیشن رو بهصورت اتوماتیک انجام میدن؟
هرچیزی نیاز باشه خودش به صورت خودکار انجام میده البته برخی از گزینهها باید توسط شما تایید و بعد فعال باشن اما شما در پروسهی تغییر پرمیشنها نیاز نیست کار فنی بکنید.
ابزاری مشابه با وردپرس وجود داره که سایت ساز باشه؟
سایت سازهای فارسی مثل سایزیتو یا موارد دیگر غیر فارسی مثل wix هم موجود است ولی محبوبیت وردپرس به دلیل کامیونیتی بزرگتر و متن باز بودن است.
اگر پرمیشن فایلها رو اشتباه بذارم باعث خطای ۵۰۰ میشه یا فقط آپلود عکس مشکل پیدا میکنه؟
با خطای ۵۰۰ دچار میشوید.
پرمیشنها بسیار مهم است و در صورت عدم صحت انجام آنها خطاهای مختلفی از جمله 500 دریافت خواهید کرد.
چرا فایل wp‑config.php رو روی عدد ۴۰۰ یا ۶۴۴ قرار بدیم کدوم امنتر هست؟
این استاندارد وردپرس هست و بهتره 400 باشه.
فایل wp-config.php شامل اطلاعات حساس مثل نام دیتابیس، یوزرنیم و پسورد است، بنابراین هرچه سطح دسترسی آن محدودتر باشد، امنیت بالاتر میرود. سطح 400 یعنی فقط مالک فایل میتواند بخواند و بقیه هیچ دسترسی ندارند، که امنترین حالت روی هاستهایی است که شما مالک مستقیم فایل هستید. اما 644 اجازه میدهد همه کاربران سیستم (نه فقط مالک) فایل را بخوانند، که روی هاست اشتراکی خطرناکتر است چون کاربران دیگر هم میتوانند محتوا را ببینند. در نتیجه، اگر سرور شما بدون مشکل با محدودیت کار کند، 400 یا نهایتاً 440 امنتر از 644 است.