چک لیست امنیت وردپرس
در این مقاله قصد دارم چک لیستی برای افزایش امنیت سایتهای وردپرسی تنظیم کنم تا در پروژه هایی که از ورپرس چه برای توسعهی وبلاگشان و چه برای توسعه کل پروژه از وردپرس استفاده میکنم استفاده کنم.
این چک لیست ترجمهای مفهومی از پیج گیت هاب wpscan میباشد
۱-بلاگ یا فسمت مقالات وب سایت را در زیردامنه راه اندازی نمائید.
با این کار مطمئن هستید که بلاگ شما در فضای جداگانه از وب سایت شما اجرا میشود.
۲-انتقال پوشهی محتوی wp-content به پوشهی دیگر
جهت جلوگیری از حملات اتوماتیک محتوی پوشهی wp-content را به پوشهی دیگری انتقال دهید.
از ورژن ۲٫۶ به بعد شما میتوانید محتویات پوشهی wp-content را از پوشهی پیش فرض وردپرس به جای دیگری انتقال دهید.
http://codex.wordpress.org/Editing_wp-config.php#Moving_wp-content
۳-از واژهی admin به عنوان گذر واژه استفاده نکنید.
وردپرس در هنگام نصب به عنوان پیش فرض از کلمهی admin به عنوان نام کاربری استفاده میکند.حتما حتما موقع نصب این نام کاربری را تغییر دهید.
قطعا دوستانی که میخواهند وب سایت شما را مورد حمله قرار دهند از این ماجرا مطلع هستند و حملهی غیر هوشمندانه (brute force attacks)را روی پسورد شما تست خواهند کرد.
۴-سعی کنید از پلاگینها کمتری استفاده نمائید.
تجربه نشان داده ضریب امنیتی افزونههای وردپرس خیلی پایین هستند.اکثر افزونهها مستعد آسیب پذیری تزریق اسکریپت،تزریق SQL و دیگر حملات میباشند.
۵-فایل wp-config.php را به ریشهی وب سایت خود انتقال دهید.
وردپرس به راحتی میتواند فایل wp-config .php را در ریشهی هاست شما یافته و از ان استفاده نماید.این کار احتمال دیده شدن این فایل را کاهش میدهد.
۶-نمایش ارورها را در وب سرور خود غیر فعال نمائید.
وردپرس معمولا از آسیب پذیری FDP که میتونه در آینده موجب آسیب پذیری های دیگری مانند Path Travers نیز شود.یکی از راههای جلوگیری از این آسیب پذیری جلوگیری از نمایش خطاهای پیاچپی می باشد تا مسیر اصلی وب سایت روی سرور در مرورگر کاربر نمایش داده نشود.
برای جلوگیری و نمایش خطاهای پی اچ پی میتونید از کد زیر استفاده نمائید.
error_reporting = off
۷-فایلهای Tim Thumb حذف نمائید.
Tim Thumb یک اسکریپت کوچک پی اچ پی است که اکثر قالب های ورد پرس برای برش،زوم و تغییر اندازهی عکسها در وب سایت استفاده میکنند.
در سال ۲۰۱۱ یک آسیب پذیری کد از راه دور روی این محصول پیدا شده که هنوز هم قابل اکسپولیت میباشد چون دیگر توسعه داده نمیشود.
۸-از افزونههای محدود کنندهی لاگین استفاده نمائید.
به طور پیش فرض وردپرس هیچ محدودیتی در وارد اشتباه نام کاربری،یا گذرواژه ندارد.لذا مهاجم میتونه حملهی حملهی غیر هوشمندانه را روی پسورد شما اجرا کنه.
۹-فایل readme.html را حذف نمائید.
وقتی وردپرس را نصب یا آپدیت میکنید به طور خودکارفایل readme.html نیز روی هاست شما کپی میشود.این فایل شامل ورژن وردپرس شماست و مهاجم ممکنه با دانستن ورژن وردپرس شما بتونه وب سایت شما را اکسپلویت کنه.
۱۰-وردپرس و تمامی پلاگین هایی که نصب کردهاید آپدیت نمائید
توسعه دهندگان وردپرس و پلاگینها به طور مداوم محصولاتشان را آپدیت می کنند و طی این آپدیتها تمام مشکلات و انواع باگهای موجود از جمله باگهای امنیتی را رفع میکنند.
۱۱-SSL را روی دامنهی خود فعال نمائید.
۱۲-از کاربری با دسترسی محدود شده برای کاربریها غیر ادمین وب سایت استفاده نمائید.
به صورت پیش فرض وردپرس از یک کاربر پایگاه داده برای هر دو قسمت پیشخوان و خود سایت استفاده میکند.
۱۳-پیشوند پیش فرض جداول پایگاه داده را تغییر دهید.
به صورت پیش فرض وردپرس از wp_ برای پیشوند جداول وردپرس استفاه میکند.استفاده از این پیشوند باعث میشود حدس نام جداول برای مهاجمها آسان تر شود.لذا توصیه میشود از پیشوند دیگری به جای پیشوند پیشفرص استفاده گردد.
۱۴-کاربرانی که دسترسی ها خاص و زیادی در وب سایت شما دارند به حداقل برسانید.
هر چه کاربرانی که دسترسی ممتاز دارند بیشتر باشد احتمال این که یکی از آنها از رمز عبور آسان و قابل حدس استفاده کند بیشتر میشود.با حداقل کردن تعداد کاربران ممتاز این احتمال را کاهش دهید.
۱۵-ورژن وردپرس را از تولید کنندهی تگها( index page و RSS feed )حذف نمائید.
وردپرس به صورت پیشفرض ورژن مورد استفاده را با استفاده ازیک متا تگ در صفحات و RSS نمایش میدهد.با حذف این متا حدس ورژن وردپرس شما توسط مهاجم سختتر خواهد شد.
۱۶-یک لایهی محافطت با استفاده از احراز هویت بر پایهی http به پوشه wp-admin و فایل wp-login.php اضافه نمائید.
جهت مطالعه بیشتر در باره ی احراز هویت با استفاده از http اینجا را ببینید.
۱۷-ویرایش قالب و پلاگین ها را غیر فعال نمائید.
یکی از ویژگیهای وردپرس وردپرس امکان ویرایش کدهای قالب و پلاگین های می باشد.
در صورتی که این امکان را غیر فعال نکرده باشید اگر مهاجم به ادیتور قالب/پلاگین درسترسی داشته باشه کدهای خودش روی هاست شما اجرا میکنه.
۱۸- افزونههایی که نصب میکنید از مخزن خود وردپرس نصب نمائید.
افزونههایی که در مخزن وردپرس اپلود میشن از تمام جنبه های توسط تیم وردپرس بررسی میشوند لذا پلاگین هایی که در خارج از مخزن وردپرس منتشر میشن ممکنه کدهای مخربی داشته باشند.
۱۹-بک آپ های خود را در دایرکتوری با دسترسی عمومی ذخیر نکنید.
ممکنه مهاجم نام فایلهای بک آپ را حدس بزند.
راه حل این کار این است که دیباگینگ را در وردپرس غیر فعال نمائید. لذا این خطوط را به صورت زیر تغییر دهید.
// Switch off debugging.
define('WP_DEBUG', false);
// Switch off debug logging.
define('WP_DEBUG_LOG', false);
۲۰-جملهی قدرت گرفته از وردپرس یا طراحی شده با وردپرس را از فوتر وب سایت حذف نمائید.
ممکنه مهاجمان با استفاده از موتورهای جست و جو برای پیدا کردن قربانیان احتمالی استفاده کنند.با حذف این جمله وب سایت خود را از لیست موتورهای جست و جو در این عبارت حذف نمائید.
۲۱-هدر X-Frame-Options را برای کاربران تائید نشده غیر فعال نمائید.
در نسخههای اخیر وردپرس با استفاده از هدر X-Frame-Options در اکانتهای ممناز وردپرس به مرورگر میگوید که فریم ها از کجا مجاز به لود شدن هستند اما این امکان به کاربران تائید نشده فراهم نشده است و لذا ممکن است وب سایت شما با حملات Click Jacking مواجه شود
۲۲-با استفاده از لیست سفید آیپیهایی که مجاز به دسترسی به فایل wp-login.php هستند را مشخص نمائید.
با توجه به این که اکثر مدیران وب سایت ها با استفاده از یک آیپی ثابت به وب سایت مورد نظر وارد میشوند لذا مشخص کردن آیپیهای مجاز به دسترسی مفید خواهد بود.
۲۳-از پسوردهای غیر قابل حدس و سخت استفاده نمائید.
۲۴-هدرهایی که توسط وب سرور شما به سمت کاربر ارسال میشود مشاهده نمائید.
هدرهایی که توسط وب سرور شما به سمت کاربر ارسال میشه کنترل نمائید.سعی کنید آنهای را به کمترین مقدار برسانید.برای چک کردن هدرهای ارسال شده دستور زیر را در خط فرمان اجرا نمائید.
curl -skI http://www.domain.com
به عنوان مثال یکی از هدر هایی که ممکنه در درخواست های https ارسال بشه نسخهی پی اچ پی است.برای جلوگیری از ارسال این هدر خط زیر را در فایل php.ini خود پیدا کنید و از حالت کامنت خارج نمائید.و اگر این خط وجود نداره اضافه نمائید.
expose_php = Off
اگر از آپاچی استفاده میکنید میتونید با مراجعه به به مسیر /etc/apache2/conf.d/security و تنظیم مقادیر زیر اطلاعات ارسال شده با هدرها را بهینه نمائید
ServerTokens Prod # Only show Server: Apache
ServerSignature Off # Remove internal information
TraceEnable Off # Disable trace method