چطور امنیت وردپرس را بالا ببریم
آیا شما هم به دنبال بهبود در امنیت وردپرس هستید؟
این روزها هکرها توجه زیادی به سایتهای وردپرس دارند و این موضوع موجب شده تا مدام این پرسش مطرح شود که آیا وردپرس امن است؟به پشتوانه بیش از 10 سال تجربه در زمینه وردپرس در پاسخ به این پرسش باید عرض کنم که بله، وردپرس امن است!ولی علاوه بر وردپرس ما از افزونهها، قالبها و سرویس میزبانی وب هم استفاده میکنیم که گاهی شرایط امنتی مناسب را نداشته و وردپرس را در برابر انواع حملات و هک، آسیبپذیر میکنند.
واقعیت این است که وردپرس با در اختیار داشتن حدود یک سوم سایتهای جهان، محبوبترین سیستم مدیریت محتوا است که البته آن را به هدفی جذاب برای هکرها هم تبدیل خواهد کرد؛ به عنوان کاربر نهایی، میتوان با انجام مواردی سایت وردپرس را ایمنسازی کرده و آسیبپذیریهای آن را برطرف نمود.این مقاله چکیدهای از 10 سال تجربه کار با وردپرس است که در آن ترفندهای مختلفی را برای افزایش امنیت وردپرس با شما در میان خواهم گذاشت
اگر وردپرس امن است، چرا امنیت وردپرس حیاتی است؟
همانطور که در بالا گفتم، وردپرس به صورت پیشفرض امن است، ولی وقتی روی سرور ناامن میزبانی شود یا هنگامی که کدهای جدید به عنوان پوسته و افزونه به آن اضافه میشود، احتمال هک شدن وردپرس افزایش پیدا خواهد کرد.
در مقاله کاهش آسیبپذیری وردپرس اینطور گفته شده است:
“آسیبپذیریهایی که بیشتر از همه روی سایتهای وردپرس تاثیر میگذارد ناشی از قسمتهای قابل توسعه آن، به ویژه افزونهها و پوسته است.این مسیر شماره یک حمله است که توسط مجرمان سایبری برای هک کردن و سوء استفاده از سایت وردپرس مورد استفاده قرار میگیرد.
این آسیبپذیریها معمولا عمدی نیست و نتیجه اشتباهات و سهلانگاری در حین توسعه است، بسیاری از توسعهدهندگان افزونه و پوسته از نظر امنیتی آگاهی لازم را نداشته و همین مسئله آنها را مستعد نوشتن کدهای آسیبپذیر میکند، البته با کشف آسیبپذیریها معمولا توسعهدهندگان با انتشار بروزرسانی آن را رفع میکنند.”
هکرها معمولا برای منفعت شخصی، وردپرس را هک میکنند که معمولا اضافه کردن بکلینک به سایتهای اسپم یا ریدایرکت کردن وردپرس به سایت دیگر است؛ البته این کار گاهی چنان پیچیده انجام میشود که کاربر حتی متوجه نمیشود که هک شده یا اینکه Backdoor روی سایتش نصب شده است!
با این حال سایت به مرور زمان شروع به از دست دادن ترافیک (مجازات سئو) کرده و تا مدیر سایت بخواهد متوجه موضوع شود ، همه چیز از کنترل او خارج شده است.اتفاق بدتر اینکه سایت میتواند توسط Blacklist برجسته لیست شود که برای خراج شدن از آن نیاز به صرف هزینههای زمانی و مالی زیاد میباشد.
به گفته شرکت امنیتی sucuri :
از بین تمام CMSهایی که در سال 2018 تمیز شده است ، وردپرس با 90% آمار در صدر قرار دارد!
این آمار برای همه صاحبان وردپرس ترسناک و دلهرهآور است؛ پس خیلی مهم است که آستینها را بالا بزنید و امنیت وردپرس خود را تقویت نمائید
راهکارهایی برای افزایش امنیت وردپرس
کانفیگ و پیکربندی بکاپ برای وردپرس
هیچ سایتی غیر قابل هک نیست و شما همیشه باید آمادگی داشته باشید که اگر اتفاقی افتاد، چیزی را از دست نخواهید داد.
نداشتن راهکار مناسب برای تهیه بکاپ از وردپرس، بزرگترین اشتباهی است که میتوانید انجام دهید، وقتی سایتهای بزرگی مانند Sony یا Dropbox میتوانند هک شوند، سایت شما چرا نباید تهدید هک شدن را احساس کند!
پس اولین گام این است که اطمینان حاصل کنید از سایت خود در بازههای زمانی مختلف بکاپ تهیه میشود؛ برای این منظور میتوانید از بکاپگیری میزبان وب خود استفاده کرده یا سرویس مدیریت و نگهداری وردپرس را تهیه نمائید.
تهیه بکاپ روی هاست (فضای میزبانی سایت)، بسیار پر ریسک و خطرناک است؛ اطمینان حاصل کنید بکاپ روی سرور دیگری تهیه شود.
از میزبان وب مورد اعتماد و با سابقه استفاده نمائید
وردپرس صرفا نرمافزاری است که روی یک سرور نصب شده است؛ پایه و اساس امنیت سایت ، سروری است که از امنیت کافی برخوردار باشد و از سایت شما در برابر هکرها محافظت نماید.
یک میزبانی ایمن برای وردپرس معمولا شامل موارد زیر است:
- فایروال سطح سرور برای جلوگیری از حملات DDOS
- استفاده از جدیدترین سختافزارها و دیتاسنترهای درجه یک برای امنیت فیزیکی
- آپدیت منظم سیستم عامل (کرنل) و اعمال آخرین patchهای امنیتی
- دارای سیستمهای تشخیص نفوذ برای فعالیتهای مخرب
استفاده از آخرین نسخه وردپرس
ابتداییترین نکته امنیتی بروزرسانی هسته اصلی وردپرس است که برای هر سایت وردپرسی ضروری است و هرگز نباید فراموش شود.
هر زمان وردپرس بروزرسانی ارسال میکند به این معنی است که آنها برخی مشکلات را رفع ، برخی ویژگیها را افزوده و از همه مهمتر تعدادی از آسیبپذیریها را برطرف کردهاند
وقتی پیغام«وردپرس x.x.x دردسترس است!» را مشاهده کردید
وردپرس را بروزرسانی کنید؛ امروزه این کار به سادگی با چند کلیک انجام میشود.
اطمینان حاصل نمائید که پوسته و افزونههای شما با آخرین نسخه وردپرس سازگار است؛ اگر بروزرسانی منتشر شده که شامل بروزرسانی امنیتی نیست، پیشنهاد میشود 5-6 روز منتظر باشید تا گزارش باگهای آخرین نسخه از کاربران انجام شود.
بروزرسانی افزونههای وردپرس
همانطور که گفته شد وردپرس برای رفع باگ و حفرههای امنیتی بروزرسانی منتشر میکند، افزونهها هم به این شکل عمل میکنند.
خیلی وقتها یک افزونه آسیبپذیر یا اسکریپت 3rd party میتواند در وردپرس شما حفره امنیتی ایجاد کند؛ یکی از این موارد که در گذشته وجود داشت آسیبپذیری Timthumb بود که به دلیل یک اسکریپت رخ داد و بسیاری از افزونههایی که از این اسکریپت استفاده میکردند هم آسیبپذیر شدند.جلوگیری از چنین آسیبپذیریهای Zero-day سخت است ولی با محدود کردن تعداد افزونهها ، اسکریپتها و پوستهها میتوان امنیت وردپرس را تقویت کرد.
همیشه از افزونههایی استفاده کنید که به طور مداوم بروز میشوند و پشتیبانی خوبی دارند؛ اگر از افزونهای استفاده مینمائید که مدتی است بهروز نشده ، برای آن جایگزین پیدا کنید.
استفاده از آخرین نسخه PHP
وردپرس بر ستون PHP استوار است و در حال حاضر آخرین نسخه آن 7.3 میباشد؛ به گفته صفحه رسمی PHP پشتیبانی امنیت برای هر نسخه پایدار فقط 2 سال است.
این بدان معناست که اگر از نسخه پایینتر از 7.1 استفاده میکنید؛ آپدیتهای امنیتی دریافت نخواهید کرد!
در اینجا یک آمار جالب و قابل تامل از سایت wordpress.org وجود دارد که طبق آن حدود 71.8% سایتهای وردپرس از نسخه PHP منسوخ شده استفاده میکنند!
استفاده از فایروال برنامههای کاربردی تحت وب (WAF)
فایروال بین سرور میزبان سایت و ترافیک شبکه قرار دارد و نقش آن فیلتر کردن رایجترین تهدیدها قبل از رسیدن به سرور میزبان سایت شما است.
برخی از تهدیدهای متداول که توسط WAF شناسایی و محافظت میشوند عبارتند از: Cross-site scripting (XSS) ، SQL injection ، Session Hijacking و buffer overflows که پروتکلهای سطح 7 در مدلOSI هستند.
این مورد یکی از ویژگیهای توصیه شده و مهم وردپرس برای سایتهای ووکامرس و دیگر سایتهای تجاری مبتنی بر وردپرس میباشد.
مخفی کردن نسخه وردپرس
بیایید فرض کنیم شما دو دقیقه زمان آزاد ندارید تا هسته وردپرس خود را آپدیت نمائید.نمایش نسخه وردپرس شما میتواند هکر را ترغیب نماید، حال اگر شما از نسخه قدیمی وردپرس استفاده کنید و همه هم بتوانند آن نسخه را ببینند ، سایت شما محکوم به هک شدن است!
امروزه بسیاری از طراحان پوسته این کار را انجام میدهند ولی برای اطمینان به فایل function.php رفته و کد زیر را به آن اضافه نمائید:
<?php remove_action(‘wp_head’, ‘wp_generator’); ?>
استفاده از رمز عبور پیچیده و قوی
افزاد زیادی هستند که از رمزعبور هوشمندانه و کاملا پیچیده استفاده میکنند؛ مانند:
- password
- 123456
- 123123
لطفا رمزهای خود را با استفاده از نشانههای (%&*#) پیچیده کرده و هر چند ماه یکبار آنها را تغییر دهید.
همچنین افزونه Login Lockdown راتوصیه میکنیم؛ این افزونه تمام آیپی هایی که تلاشهای زیاد برای ورد ناموفق به وردپرس رادارند مسدود خواهد کرد و آنها را در لیست سیاه میگذارد.
تغییر آدرس صفحه ورود پیشخوان وردپرس
با تغییر URL ورود به وردپرس، میتوان از حملات زیاد و تلاش برای هک جلوگیری کرد.اگر سایت شما به شکلی است که تعداد انگشتشماری نیاز به ورود به پیشخوان دارند ، تغییر آدرس صفحه ورود کمک زیادی به افزایش امنیت وردپرس شما خواهد نمود.مقاله چگونه آدرس صفحه ورود به مدیریت وردپرس را تغییر دهیم؟ را مطالعه نمائید.
تنظیم هشدار گوگل برای صفحات ایندکس شده
یکی از ترفندهای شناخته شده که میتوان بلافاصله از آن استفاده نمود این است که هر زمان گوگل صفحه جدیدی را در نام دامنه شما ایندکس کرد از هشدار گوگل بهره ببرید.خیلی وقتها هکرهای وردپرس صفحات و مطالب جدیدی را اضافه میکنند که در backend یا صفحه اصلی نمایش داده نمیشود ، ولی در گوگل ایندکس میگردد.
وقتی چنین هشداری را تنظیم میکنید ، خیالتان راحت است که صفحه و مطلبی بدون اطلاع شما اضافه نمیشود که در گوگل ایندکس گردد ، از آنجا که این برنامه رایگان است و تنظیمات آن کمتر از 5 دقیقه طول خواهد کشید ، آنر ا به شما توصیه خواهیم کرد.
چطور برای صفحات ایندکس شده در گوگل ، هشدار ست کنیم؟
- به آدرس Google alerts بروید
- در قسمت create an alert about میتوانید نام سایت خود راوارد کنید site:domain.com
- How often را “as it happens” قرار داده ، Language را به “any language” و How many را هم به “all results” ویرایش نمائید.
از این پس هر صفحهای از سایت که در موتور جستجو ایندکس شود ، را در اعلانهای فوری دریافت میکنید
بررسی سطح دسترسی (Permission) فایلها و پوشهها
به File Manager در کنترل پنل هاست خود رفته یا از طریق نرم افزار مدیریت FTP ویژگیهای فایل های پوشه wordpress را چک کنید.
دسترسی 744(read only) خوب است ، اگر پوشها مهمی با دسترسی 777 پیدا کردید ، به شدت خوش شانس هستید که تا الان هک نشدهاید.
اغلب مدیران سایت پس از تغییر هاستینگ خود ، متوجه تغییرات در سطح دسترسی نمیشوند، لطفا پس از جابهجایی این موارد را به دقت بررسی کنید.
حذف کردن کاربر Admin پیشفرض
این یکی از مهمترین نکات برای افرادی است که به دنیال ایجاد امنیت در وردپرس هستند؛ نام کاربری پیشفرض Admin در معرض حملات brute force است ، زیرا هنوز هم اکثر مردم آن را تغییر نمیدهند!
در زمان نصب و پیکربندی وردپرس اطمینان حاصل کنید که به جای استفاده از نام کاربری Admin از یک نام مختص به سایت خود استفاده نمائید.حتما از نام مستعار استفاده کنید که در زمان انتشار مطلب نمایش داده شود.
مخفی کردن مسیر افزونهها
پوشه افزونهها /wp-content/plugins/ نباید پوشهها و فایلهای درون آن را نمایش دهد.
پوشه افزونههای سایت خود را امتحان کنید(به جای domain.com نام دامنه خود را بگذارید)
- domain.com/wp-content/plugins/
اگر پوشهها و فایلها را مشاهده میکنید ، باید آنها را مخفی نمائید؛ برای مخفی کردن آنها نیاز به ایجاد یک فایل .htaccess در پوشه پلاگینها دارید
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# Prevents directory listing
IndexIgnore *
# END WordPress
خاموش کردن خطاهای دیتابیس
در نسخههای قدیمی وردپرس، اگر در پایگاه داده Mysql خطایی رخ دهد، خطای دقیق در مرورگر نشان داده میشود که حاوی اطلاعات ارزشمندی برای هکر است.
برای جلوگیری از این موضوع باید وردپرس را به آخرین نسخه آپدیت کنید تا به جای نمایش خطای دقیق ، خطای کلی “خطای اتصال به بانک اطلاعاتی” را نمایش دهد.
وارد پیشخوان وردپرس شوید و هسته وردپرس را آپدیت نمائید