آموزش افزایش امنیت وردپرس
درست مانند دنیای واقعی، محافظت از دارایی های دیجیتال مهم است. برای بسیاری از ما، بزرگترین سرمایه ما سایتمان است. به همین دلیل، سرمایه گذاری در امنیت وردپرس معادل خرید بیمه یا نصب قفل بهتر روی درب منزل می باشد.
گوگل بصورت دوره ای، هزاران سایت را به منظور معرفی برخی از وب سایت های حاوی بدافزار یا دارای عملیات فیشینگ وارد لیست سیاه و مشکوک خود می کند. این یعنی میلیارها تومان سرمایه و امیدی که بدلیل عدم رعایت نکات امنیتی، نابود می شود.
هکرها با بررسی زیر و بم هر سیستمی می توانند یک راه نفوذ پیدا کنند. همانطور که می دانید وردپرس مانند خیلی از سایت سازهای مطرح دیگر مثل جوملا و… یک سیستم سایت ساز رایگان و متن باز است. یعنی کدهای برنامه نویسی این CMS بصورت عمومی و رایگان در اختیار همه افراد قرار دارد (چه هکرها و چه مدیران سایت ها).
امنیت یک چیز نسبی است و هیچ وقت نمی توان گفت که شما و یا سایت شما قطعا در امنیت کامل هستید!
امنیت وردپرس چقدر است؟
راه های نفوذ یک هکر ارتباطی با CMS وردپرس و یا سایر سیستم های مدیریت محتوا از جمله CMS های اختصاصی ندارد. برای درک این موضوع می توانید در گوگل کلمات “هک اطلاعات” را جستجو و نتایج را بررسی کنید.
یکی از دلایل و استدلال هایی که شرکت های طراحی سایت برای رد صلاحیت سیستم های مدیریت محتوایی مانند وردپرس بیان می کنند این است که خیلی راحت هک می شود پس بیایید CMS اختصاصی ما را با چند برابر قیمت به بخرید!
در حقیقت CMS های اختصاصی سورس کدهای خود را بصورت عمومی منتشر نمی کنند، در نتیجه یافتن راه نفوذ به آن ها سخت تر می شود. اما این همه موضوع نیست. CMS های اختصاصی برعکس سیستم های مدیریت محتوایی همچون وردپرس معمولا بروز نمی شوند، باگ هایشان رفع نمی شود و از نظر امنیتی نیز بصورت دوره ای بررسی نمی شوند. معمولا آن ها را یک شخص و یا تعداد نفرات کمی نوشته اند. در نتیجه این به آن معنا نیست که CMS اختصاصی راه نفوذی ندارد.
هکرها وقتی بخواهند سایتی را هک کنند، بالاخره راه نفوذ خود را پیدا می کنند. گواه این حرف هم اخباری در رابطه با هک شدن اکانت های هزاران نفر در فیسبوک، اینستاگرام، توییتر و… است.
شاید این مطالب هم دوست داشته باشید
از اینرو برای استفاده از سیستم هایی همچون وردپرس باید قواعدی را برای بهبود و جلوگیری از Hack شدن و افزایش امنیت رعایت نمود.
در این مقاله سعی می کنم نکاتی برای افزایش امنیت وردپرس با شما در میان بگذارم. امیدوارم با رعایت این اصول، وردپرس خود را ضد گلوله کنید.
چطور بفهمم که سایتم هک شده؟
اگر فکر می کنید که هک شده اید، ممکن است خیلی دیر شده باشد. روش هایی برای کشف و یافتن اینکه سایت شما هک شده است وجود دارد. شما توسط ابزارهای که در ادامه معرفی می کنم می توانید سایت خود را برای مسائل امنیتی و یا وجود بدافزارها و… بررسی نمایید.
- اسکن مسائل امنیتی عمومی: برای بررسی آسیب پذیری های عمومی از Unmask Parasites و Web Inspector استفاده کنید.
- اسپم و ایمیل های تبلیغاتی انبوه: MX Toolbox ابزاری است که از آن می توانید برای بررسی سایت خود در صد لیست سیاه ایمیل استفاده کنید.
- بررسی و جستجوی بدافزار در سایت: اسکنر رایگان بدافزار وب سایت Sucuri وب سایت شما را برای یافتن کد مخرب و سایر مشکلات امنیتی بررسی می کند.
البته ممکن است هکر سایت شما را مورد حمله و نفوذ قرار داده باشد و هنوز اقدام خاصی برای خرابکاری انجام نداده باشد. پس ابزارهای بالا صرفا وقتی به شما پاسخ صحیح را می دهند که فکر فایل های مخربی روی سایت شما آپلود نماید.
چرا سایت های وردپرس هک می شوند
هزاران توسعه دهنده از سراسر دنیا در حال توسعه هسته وردپرس هستند. در نتیجه از نظر امنیت هسته این نرم افزار از امنیت بالایی برخوردار است.
در بالا تصویری از راه های نفوذ به وردپرس را مشاهده می کنید که توسط سایت Wordfence تهیه و منتشر شده است.
13 روش هک وردپرس
- اشکالات امنیتی پلاگین های وردپرس
- عملیات Brute Force
- هسته WordPress
- اشکالات امنیتی قالب
- ضعف امنیتی هاستینگ
- سطح دسترسی فایل ها
- فایل های قدیمی
- سرقت کلمه عبور
- workstation
- عملیات Phishing
- کارمندهای داخلی
- مشکلات امنیتی سرور
- ftp
بله، این ها 13 روش نفوذند که هر لحظه سایت شما را تهدید می کنند! این راه های نفوذ، محدود به وردپرس نیستند و سایر CMS ها هم از طریق همین راه های نفوذ، مورد حمله قرار می گیرند.
البته طبق تحقیق
اما چطور می توانیم راه های نفوذ به وردپرس را محدود و کاملا ایمن کنیم؟
چطور امنیت وردپرس را افزایش دهیم؟
حتما با مطالعه مطالب بالا، می ترسید که هک شوید! نگران نباشید اگر شما هم مثل نمکی ما در داستان “شش در رو بستی نمکی، یک در رو نبستی نمکی” نباشید، همه ی درهای نفوذ به سایت خود را خواهید بست.
در ادامه مطلب روش هایی به شما آموزش خواهم داد که تا حد زیادی امنیت وردپرس را افزایش می دهد. با انجام کارهای زیر می توانید امنیت وردپرس خود را افزایش دهید.
از هاست های مطمئن و ایمن استفاده کنید
اگر هنوز سایت خود را روی یک هاست اینترنتی آپلود نکردید و یا نمی دانید که اصلا هاست چیست، پیشنهاد می کنم ابتدا مقاله Host چیست را حتما مطالعه کنید.
بستر هاستی که سایت شما بر روی آن میزبانی می شود از اهمیت ویژه ای چه از نظر امنیت و چه از نظر سایر موارد برخوردار است. بسیاری از سایت های وردپرسی بدلیل ضعف امنیتی سروس دهنده هاست خود، هک شده اند.
همه سرویس دهنده های هاست خدمات و امکانات یکسان و مشابهی به شما ارائه نمی دهند. در نتیجه هاستِ سایت خود را از شرکت های مطمئن و دارای اعتبار تهیه کنید.
هنگام انتخاب میزبان هاست خود بجای هزینه برروی موارد امنیتی تمرکز کنید. چراکه از قدیم گفته اند: پنیر مجانی فقط در تله موش پیدا می شِه!
بطور خلاصه یک سرویس دهنده ایمن دارای سیستم های امنیتی آنتی اسپم، آنتی شل، آنتی ویروس، فایروال نرم افزاری و سخت افزاری و کانفیگ حرفه ای سرور است.
برای یافتن بهترین میزبان هاستینگ خود کافی است در انجمن ها و یا پرس و جو از دوستان با تجربه کمک بگیرید.
تهیه افزونه، قالب و هسته وردپرس از سایت های رسمی و مطمئن
اگر هنوز قالب، افزونه و یا هسته وردپرس را تهیه نکردید، به شما پیشنهاد می کنم که فقط از سایت های رسمی و قابل اطمینان خرید کنید. متاسفانه بدلایل مختلف از جمله بالا بودن نرخ ارز و تحریم ها خیلی از سایت های ارائه دهنده افزونه و قالب وردپرس در ایران، محصولات خود را از سایت هایی تهیه می کنند که نه اعتبار و نه اطمینانی به آن ها هست.
معمولا محصولات ارائه شده در این سایت ها حاوی Shell و یا بدافزار است که دسترسی و راه نفوذ را برای هکرها باز می کند. پس پیشنهاد می دهم محصولات مدنظر خود را حدالامکان از منبع اصلی خریداری کنید. و اگر امکانش را نداشتید در بین سایت های ایرانی بدنبال سایت قابل اطمینانی بگردید.
تغییر پیشوند جدول پایگاه داده
پیشوند جدول پایگاه داده وردپرس بصورت پیشفرض _wp است. با تغییر این پیشوند می توانید بخش پایگاه داده خود را ایمن تر کنید. اگر هنوز وردپرس را نصب نکرده اید می توانید در مرحله ای که اطلاعات پایگاه داده از شما گرفته می شود آن را تغییر و روی دکمه فرستادن کلیک کنید:
اگر هم وردپرس را نصب کردید و نمی دانید چطور می توانید پیشوند جداول را تغییر دهید، کافی است از قسمت نظرات به من اطلاع بدهید تا آموزش آن را هم برای شما قرار دهم.
انتخاب صحیح نام کاربری، رمز عبور و نقش ها برای افزایش امنیت
یکی از شایع ترین نام کاربری هایی که برای مدیر سایت های وردپرسی استفاده می شود، admin است. با قراردادن نام کاربری admin کار را برای هکرها بسیار آسان می کنید. هکرها با داشتن نام کاربری admin خیلی راحت عملیات brute-force را روی سایت شما انجام می دهند.
روش های تغییر نام کاربری admin وردپرس
برای تغییر نام کاربری admin می توانید از روش های زیر استفاده کنید:
- یک کاربر جدید با نقش مدیر بسازید و کاربر admin را حذف کنید.
- تغییر نام کاربری admin را توسط افزونه ها انجام دهید.
- از طریق phpMyAdmin اقدام به تغییر نام کاربری admin کنید.
برای تغییر نام کاربری admin در وردپرس می توانید از افزونه Easy Username Updater کمک بگیرید:
درصورتیکه مشکلی در تغییر نام کاربری خود داشتید می توانید از قسمت نظرات مشکل خود را با من مطرح کنید.
رمز عبور قوی انتخاب کنید
استفاده از رمزهای عبور سست و ضعیف مانند:123456 و یا رمزهای اینچنینی یکی از راه های شایع نفوذ به هر سایتی است. البته این مورد محدود به وردپرس نیست و سایر رمزهای عبور از جمله FTP، ایمیل و یا سایر اکانت های خود را هم باید از کلمات عبور قوی و پیچیده استفاده کنید.
برای ساخت کلمات عبور پیچیده و قوی می توانید از سرویس های آنلاین مانند: Secure Password Generator استفاده کنید.
تعریف نقش کاربران بر حسب وظایف
فکر کنید تیمی های مستقلی برای تولید محتوا، سئو، مدیریت محصولات فروشگاه و… تشکیل دادید. آیا تک تک افراد باید نقش مدیر که بالاترین سطح دسترسی به وردپرس است را داشته باشند؟ اگر رمز عبور یکی از ان ها به هر دلیلی هک شد، کل سایت در معرض خطر است. پس سعی کنید بر اساس نیاز به هرکدام از آن ها نقش دهید.
نقش های پیشفرض وردپرس چیست؟
وقتی کاربر جدیدی در وردپرس می سازید و یا آن را ویرایش می کنید، امکان تغییر نقش آن ها را هم دارید. وردپرس بصورت پیش فرض دارای نقش های زیر است:
- مشترک: فقط دسترسی به ویرایش مشخصات خود را دارد.
- مشارکت کننده: امکان نوشتن مطلب جدید و مدیریت مطالب ارسالی خود را دارد. اما نمی تواند مطلب را منتشر کند.
- نویسنده: می تواند مطلب جدیدی ارسال و منتشر کند.
- ویرایشگر: دسترسی به مدیریت نوشته های کاربران را دارد و می تواند آن ها را منتشر کند.
- مدیر کل: دسترسی به تمامی امکانات و قابلیت های وردپرس را دارد.
چطور می توانم نقش جدیدی به وردپرس اضافه کنم؟
برای تیم های حرفه ای دسترسی نقش های پیش فرض وردپرس کافی نیست. اگر شما هم نیاز دارید که نقش های جدیدی به وردپرس اضافه و یا ویرایش کنید از 3 افزونه زیر می توانید کمک بگیرید:
افزایش امنیت وردپرس با محافظت از پوشه wp-admin
شما می توانید با محافظت از پوشه wp-admin و تغییر صفحه ورود امنیت وردپرس را افزایش دهید. در این قسمت به شما آموزش بالا بردن امنیت وردپرس با محافظت از پوشه wp-admin که دسترسی به پیشخوان وردپرس را مهیا می سازد را آموزش خواهم داد. همچنین در ادامه به شما آموزش خواهم داد که چطور می توان مسیر صفحه ورود وردپرس را تغییر داد.
چطور از پوشه wp-admin محافظت کنم؟
برای محافظت از پوشه wp-admin چند روش وجود دارد:
- اجازه دسترسی به پوشه wp-admin و wp-login.php فقط برای IP خاص که قبلا توضیح دادم.
- قراردادن پسورد روی این پوشه از طریق Password Protect پنل هاست
روش های قراردادن پسورد روی wp-admin
بسته به پنل هاست خود می توانید از آموزش های زیر برای قراردادن پسورد روی این پوشه استفاده کنید. توجه کنید که کار بسیار ساده و آسان است. اما اگر با خطایی روبرو شدید دنباله مقاله را حتما بخوانید:
قراردادن پسورد روی wp-admin در Cpanel
- وارد cpanel شده و روی file manager کلیک کنید.
- وارد مسیر نصب وردپرس شده و روی پوشه wp-admin راست کلیک کنید.
- گزینه Password Protect را انتخاب کنید.
- تیک گزینه password protect this directoru را بزنید.
- در قسمتی که نوشته شده Enter a name for the… یک اسم انتخاب و روی save کلیک کنید. سپس در صفحه باز شده روی Back کلیک کنید.
- از قسمت Creat User برای خود یک نام کاربری و رمز عبور تعریف کنید. توجه کنید که باید رمز عبور را در دو قسمت New Password و confrim Password وارد کنید.
- حالا روی دکمه Save کلیک کنید.
قراردادن پسورد روی wp-admin در DirectAdmin
وارد DirectAdmin شده و روی File Manager کلیک کنید.
به مسیر نصب وردپرس رفته و روی protect موجود جلوی پوشه wp-admin کلیک نمایید.
در قسمت اول یک نام وارد کنید.
در قسمت دوم نام کاربری را تایپ کنید.
در دو قسمت بعد هم پسورد خود را قرار دهید.
گزینه Protection Enabled را فعال کنید و روی Save کلیک نمایید.
اشکالات و خطاهای بعد از رمز گذاری بر روی پوشه wp-admin
- خطای 404 یا خطا Too many redirects error بعد از رمز گذاری بر روی پوشه wp-admin
این خطا بدلیل نوع پیکربندی سرور به شما نمایش داده می شود. برای رفع آن کافی است به پوشه wp-admin رفته و ابتدای فایل .htaccess کد زیر را اضافه کنید.
1 |
ErrorDocument 401 default |
- نحوه رفع مشکل Admin Ajax بعد از رمز گذاری بر روی پوشه wp-admin
برخی از افزونه ها و یا قالب ها از فایل Ajax موجود در پوشه wp-admin استفاده می کنند. با قرار دادن پسورد روی این پوشه ممکن است بخشی از سایت شما
در front-end (بخشی که بازدیدکنندگان آن را مشاهده می کنند) دچار مشکل شود.
راه حل این مشکل افزودن کد زیر در فایل htaccess. موجود در پوشه wp-admin است:
1 2 3 4 5 |
<Files admin-ajax.php> Order allow,deny Allow from all Satisfy any <Files/> |
افزایش امنیت و محافظت از صفحه ورود به وردپرس
یکی از دیگر راه های افزایش امنیت وردپرس، محافظت از صفحه ورود آن است. برای این کار علاوه بر روش بالا می توانید از روش های زیر استفاده کنید:
- پیام های خطای ورود را تغییر دهید.
- آدرس صفحه ورود به وردپرس را تغییر دهید.
چطور پیام های خطای ورود وردپرس را تغییر دهم؟
به طور پیش فرض ، اگر شخصی سعی کند با بصورت آزمایشی با نام کاربری و کلمه عبور وارد سایت شما شود، وردپرس به آنها خواهد گفت که رمز و یا نام کاربری را اشتباه وارد کرده اند.
هکرها با استفاده از برنامه های مخصوص لیستی از نام های کاربری و رمزهای عبور را روی صفحه ورود وردپرس تست می کنند. فکر کنید هزاران بار چنین کاری می کنند تا بالاخره یکی از آن ها وارد شود!
با تغییر پیغام خطای صفحه ورود وردپرس می توانید برخی از این حملات را خنثی نمایید. برای اینکار کافی است کد زیر را در فایل Functions.php موجود در پوشه قالب قرار دهید.
1 2 3 4 |
function custom_wordpress_error_message(){ return 'مشکلی رخ داده است.'; } add_filter( 'login_errors', 'custom_wordpress_error_message' ); |
شما می توانید بجای “مشکلی رخ داده است.” هر جمله ای که دوست داشتید قرار دهید.
همچنین برای حذف کامل پیغام های خطای ورود، می توانید از تکه کد زیر در همان فایل Functions.php استفاده کنید.
1 2 |
// Remove error message on login screen - Modiranwp.com add_filter('login_errors', create_function('$a', 'return null;')); |
تغییر آدرس صفحه ورود وردپرس و مخفی سازی آن
راه دیگر برای ایمن نگه داشتن صفحه ورود به سایت وردپرس، پنهان کردن و یا تغییر آدرس آن است. همانطور که همه کسانی که با وردپرس کار کرده اند می دانند، شما معمولاً از طریق yourdomain.com/wp-admin یا yourdomain.com/wp-login.php وارد داشبورد وردپرس می شوید.
انتقال آن به آدرس دیگری به این معنی است که اسکریپت های خودکار در جای اشتباه قرار خواهند گرفت.
تغییر صفحه لاگین وردپرس توسط افزونه
بسیاری از افزونه های امنیتی فوق می توانند این کار را برای شما انجام دهند. علاوه بر آن، Cerber Security & Antispam و WP Hide & Security Enhancer نیز از این توانایی برخوردار هستند. همچنین می توانید خودتان این کار را با استفاده از کد شرح داده شده در پایین انجام دهید.
کد تغییر مسیر ورود به وردپرس
برای تغییر آدرس صفحه ورود تکه کد زیر را بالای فایل .htaccess خود کپی کنید.
1 2 3 4 5 6 7 8 9 10 11 |
# BEGIN Hide login page RewriteRule ^modiranwp$ https://%{SERVER_NAME}/wp-login.php?key=123&redirect_to=https://%{SERVER_NAME}/wp-admin/index.php [L] RewriteCond %{HTTP_REFERER} !^https://%{SERVER_NAME}/wp-admin RewriteCond %{HTTP_REFERER} !^https://%{SERVER_NAME}/wp-login.php RewriteCond %{HTTP_REFERER} !^https://%{SERVER_NAME}/login RewriteCond %{QUERY_STRING} !^key=123 RewriteCond %{QUERY_STRING} !^action=logout RewriteCond %{QUERY_STRING} !^action=lostpassword RewriteCond %{REQUEST_METHOD} !POST # END Hide login page |
مطمئن شوید که modiranwp را در خط دو به اسم صفحه لاگین جدید تغییر داده باشید. اگر آن را تغییر ندهید ، می توانید صفحه ورود به سایت خود را در www.your-site.com/modiranwp پیدا کنید.
همچنین حتماً 123 را در سطرهای دو و هفت به چیز دیگری تغییر دهید. این یک کلید مخفی است که برای هکرها نمایش داده نمی شود. شما باید چیزی را انتخاب کنید که واضح نیست بنابراین کلید مخفی “wordpress” یا عنوان سایت خود را تغییر ندهید. کلید شما فقط باید دارای حروف و شماره باشد.
پرونده .htaccess خود را ذخیره کنید و پس از حذف کش مرورگر با فشردن ctrl+f5 مشاهده کنید که مسیر صفحه لاگین تغییر کرد. اگر خطای 500 سرور داخلی را دیدید، بدان معنی است که شما در جایی اشتباه کرده اید.
تلاش های ورود ناموفق به وردپرس را محدود کنید
تا الان کلی کار برای افزایش سطح امنیت وردپرس انجام دادیم. اما هنوز کافی نیست. استفاده از رمز عبور قوی، قرار دادن پسورد روی wp-admin و… تنها بخشی از کارهای است که می توانیم برای افزایش امنیت وردپرس انجام دهیم. هنوز هم ممکن است هکر همه آن ها را شکست بدهد و مجددا به وردپرس نفوذ کند.
بنابر این باید محدودیتی در تعداد دفعات ورود اشتباه در وردپرس قرار دهیم. هر IP که از این تعداد بیشتر تلاش ناموفق کرد به لیست سیاه وردپرس وارد می شود.
افزونه هایی مانند WP Limit Login Attempts شما را قادر می سازند تا تعیین کنید که پس از چند مرتبه ورود ناموفق آدرس IP به طور موقت یا دائم از بازدید سایت محروم گردد.
افزونه های احراز هویت دو عاملی را روی وردپرس نصب کنید
احراز هویت دو عاملی به معنای چیزی غیر از ایجاد یک مرحله اضافی برای ورود افراد به سایت شما نیست. یعنی حتی اگر Hacker کلمه عبور و نام کاربری شما را هم داشته باشد از وی رمز یکبار مصرفی که هر چندثانیه در حال تغییر است را می خواهد. معمولا این رمز عبور توسط اپلیکیشن روی موبایل شما نمایش داده می شود. روش دیگر احراز هویت دو عاملی استفاده از سئوالات امنیتی است.
استفاده از افزونه های احراز هویت دو عاملیمی تواند حملات خودکار را مسدود کند.
در اینجا چند افزونه وجود دارد که به شما اجازه می دهد احراز هویت دو عاملی را پیاده سازی کنید:
پلاگین افزودن سئوال امنیتی در وردپرس
افزونه WP Security Question به شما اجازه می دهد که در صفحات ثبت نام و … از کاربر خود سئوال و پاسخ امنیتی آن را دریافت کنید. این کار باعث می شود سطح امنیت وردپرس شما در هنگام ورود در سطح قابل قبولی افزایش پیدا کند.
افزونه وردپرسی افزودن رمز یکبار مصرف و دو مرحله ای
توسط افزونه Google Authenticator – WordPress Two Factor Authentication (2FA) و استفاده از اپلیکیشن Google Authenticator می توانید رمزهای یکبار مصرف دو مرحله ای به وردپرس اضافه کنید. البته امکانات این افزونه بیش از این است که اکثر آن ها در نسخه تجاری و حرفه ای آن ارائه میگردد.
بالا بردن امنیت وردپرس با حذف و یا محافظت از فایل نصب وردپرس
پس از نصب وردپرس هنوز فایل نصب در مسیر wp-admin با نام install.php وجود دارد. وجود این فایل و عدم حذف و یا محافظت آن، امین وردپرس شما را تهدید می کند. برای ارتقاء و بالا بردن امنیت وردپرس و رفع تهدیدات مرتبط با این فایل می توانید از دو راهکار زیر استفاده نمایید:
- حذف install.php در پوشه ذکر شده
- محدود کردن دسترسی به فایل install.php توسط .htaccess: برای اینکار در مسیر wp-admin یک فایل .htaccess بسازید و کدهای زیر را در آن قرار دهید:
1 |
RedirectMatch Permanent wp-admin/install(-helper)?\.php / |
کلیدهای امنیتی را به فایل wp-config.php اضافه کنید
کلیدهای امنیتی WordPress ، که همچنین SALT نامیده می شوند ، اطلاعات ذخیره شده در کوکی های مرورگر را رمزگذاری می کنند. از این طریق ، آنها از رمزهای عبور و سایر اطلاعات حساس محافظت می کنند. این کلیدها عباراتی هستند که برای تصادفی کردن آن اطلاعات استفاده می شوند و در wp-config.php ذخیره می شوند:
1 2 3 4 5 6 7 8 |
define('AUTH_KEY', 'عبارت بی نظیر خود را در اینجا قرار دهید'); define('SECURE_AUTH_KEY', 'عبارت بی نظیر خود را در اینجا قرار دهید'); define('LOGGED_IN_KEY','عبارت بی نظیر خود را در اینجا قرار دهید'); define('NONCE_KEY','عبارت بی نظیر خود را در اینجا قرار دهید'); define('AUTH_SALT','عبارت بی نظیر خود را در اینجا قرار دهید'); define('SECURE_AUTH_SALT', 'عبارت بی نظیر خود را در اینجا قرار دهید'); define('LOGGED_IN_SALT', 'عبارت بی نظیر خود را در اینجا قرار دهید'); define('NONCE_SALT', 'عبارت بی نظیر خود را در اینجا قرار دهید'); |
شما باید آنها را به صورت دستی به فایل wp-config.php اضافه کنید. خوشبختانه ، نیازی نیست خودتان این عبارات را بسازید. در عوض، به سادگی توسط key generator کلید ساخته شده را کپی و در فایل wp-config.php جایگزین نمایید.
ویرایشگر قالب و افزونه وردپرس را غیرفعال کنید
برای ایجاد تغییر در سایت خود، وردپرس حاوی ویرایشگر داخلی برای فایل های تم و افزونه است. اگرچه در برخی شرایط می تواند مفید و کاربردی باشد، اما بسیار خطرناک است.
دلیل این امر این است که اگر فکر به پنل مدیریت وردپرس دسترسی پیدا کند، می تواند از ویرایشگر برای خراب کاری استفاده کند.
برای پیشگیری و بالا بردن امنیت وردپرس، ویرایشگر را با افزودن این خط به پرونده wp-config.php غیرفعال کنید:
1 |
define('DISALLOW_FILE_EDIT', true); |
غیر فعال کردن Error Reporting در وردپرس
هنگامی که افزونه ها یا قالب باعث ایجاد خطا در سایت شما می شوند، وردپرس پیامی را نمایش می دهد.
این پیام ممکن است شامل مسیر فایل مشکل ساز باشد. هکرها می توانند از این اطلاعات برای درک بهتر مشکلات سرور و سایت شما جهت حمله به آن استفاده کنند. با تکه کد زیر که در فایل wp-config.php قرار داده می شود می توانید Error Reporting را غیر فعال کنید:
1 2 |
error_reporting(0); @ini_set('display_errors', 0); |
اگر کد بالا کار نکرد ممکن است بخاطر تنیمات هاست باشد. در این حالت باید با سرویس دهنده هاست خود صحبت کنید.
از دسترسی به فایل های مهم محافظت کنید
.htaccess فایل مهم است که سرور شما را پیکربندی می کند. از بین فایل های دیگر، این فایل به شما امکان استفاده از لینک های زیبا (پیوندهای یکتا) در WordPress را می دهد. همچنین می تواند تغییر مسیر فایل ها و آدرس ها را تنظیم کند. مهم ترین کار این فایل این است که امنیت وردپرس را افزایش می دهد.
کد زیر از دسترسی به پرونده های مهم مانند wp-config.php، php.ini، error logs و .htaccess جلوگیری می کند.
برای اینکار کافی است کد زیر را در فایل .htaccess موجود در محل نصب وردپرس قرار دهید:
1 2 3 4 |
<FilesMatch "^.*(error_log|wp-config\.php|php.ini|\.[hH][tT][aApP].*)$"> Order deny,allow Deny from all </FilesMatch> |
نکته: در صورت لزوم می توانید نام پرونده php.ini خود را تنظیم نمایید (مانند php5.ini یا php7.ini).
نکته: حتما کد را خارج از براکت های #BEGIN WordPress و #END WordPress قرار دهید.
دسترسی به پرونده های PHP را محدود کنید
با این کد می توانید دسترسی به پرونده های PHP را محدود کنید. همچنین می توانید از دسترسی به پرونده های PHP و تزریق بدافزار در آن ها جلوگیری کنید.
برای این کار، کد زیر را در فایل .htaccess قرار دهید:
1 2 3 4 5 6 |
RewriteCond %{REQUEST_URI} !^/wp-content/plugins/file/to/exclude\.php RewriteCond %{REQUEST_URI} !^/wp-content/plugins/directory/to/exclude/ RewriteRule wp-content/plugins/(.*\.php)$ - [R=404,L] RewriteCond %{REQUEST_URI} !^/wp-content/themes/file/to/exclude\.php RewriteCond %{REQUEST_URI} !^/wp-content/themes/directory/to/exclude/ RewriteRule wp-content/themes/(.*\.php)$ - [R=404,L] |
بالا بردن امنیت وردپرس با جلوگیری از اجرای پرونده های PHP
یک مورد متداول برای هکرها برای آپلود و اجرای نرم افزارهای مخرب در مسیر wp-content/uploads است. برای جلوگیری از اجرای کد های PHP در این مسیر، از این قطعه کد استفاده کنید.
برای این کار، کد زیر را در فایل .htaccess قرار دهید:
1 2 3 4 5 6 |
<Directory "/var/www/wp-content/uploads/"> <Files "*.php"> Order Deny,Allow Deny from All </Files> </Directory> |
غیرفعال کردن تزریق اسکریپت (Script Injections)
از این قطعه در فایل .htaccess استفاده کنید تا افراد از خارج پنل نتوانند کد مخرب را به پرونده های PHP موجود شما تزریق کنند.
برای این کار، کد زیر را در فایل .htaccess قرار دهید:
1 2 3 4 5 6 |
Options +FollowSymLinks RewriteEngine On RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR] RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR] RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2}) RewriteRule ^(.*)$ index.php [F,L] |
افزایش امنیت وردپرس با محافظت از پوشه wp-includes
پوشه wp-includes پرونده های اصلی وردپرس را در خود جای داده است که هیچ کس لزومی به دستکاری آنها ندارد. برای اینکه کاملاً مطمئن شوید که این اتفاق نمی افتد، از کد زیر استفاده کنید.
برای این کار، کد زیر را در فایل .htaccess قرار دهید:
1 2 3 4 5 6 7 8 9 |
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^wp-admin/includes/ - [F,L] RewriteRule !^wp-includes/ - [S=3] RewriteRule ^wp-includes/[^/]+\.php$ - [F,L] RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L] RewriteRule ^wp-includes/theme-compat/ - [F,L] </IfModule> |
نگران نباشید ، این فایلها روی قالب یا افزونه های شما تأثیر نمی گذارند.
غیر فعال کردن Directory Indexing در وردپرس
اگرچه این امر هکرها را قادر به ایجاد تغییر نمی کند، دانش در مورد ساختار سایت شما همچنان به آنها کمک می کند. از آنجا که می خواهید راه های نفوذ را کاملا ایمن کنید، مرور فهرست فایل ها (directory browsing) را درون فایل .htaccess خاموش کنید:
1 |
Options All -Indexes |
مجوزها و سطح دسترسی ها (File Permissions) را بررسی کنید
File Permissions ها در وردپرس باید به شرح زیر تعریف شوند:
- 755 یا 750 برای دایرکتوری ها (پوشه ها)
- 644 یا 640 برای فایل ها
- 600 برای فایل wp-config.php
برای تغییر و یا بررسی مجوزها می توانید با استفاده از اکانت ftp و FileZilla وارد مسیر نصب وردپرس شوید. پوشه ها و فایل های مد نظر را انتخاب و روی آن ها راست کلیک نمایید. از منوی باز شده روی File permissions کلیک کرده و از صفحه باز شده در numeric value عدد مجوز را ویرایش کنید.
افزایش امنیت با حذف ورژن وردپرس
به طور پیش فرض، وردپرس حاوی یک برچسب متا (meta tag) در داخل سورس کد صفحات سایت است که نسخه وردپرس را نمایش می دهد و همچنین آن را به اسکریپت های بارگذاری شده در بخش <head> شما اضافه می کند.
متأسفانه ، این اطلاعات برای هرکسی که سعی در هک کردن سایت شما را دارد، بسیار مفید است. به خصوص در صورتی که از نسخه قدیمی وردپرس استفاده می کنید که دارای آسیب پذیری امنیتی شناخته ای باشد، نمایش ورژن وردپرس امنیت سایت شما را تهدید می کند. خوشبختانه حذف ورژن وردپرس به آسانی اضافه کردن کدهای پایین در بالای پرونده function.php قالب شماست:
1 2 3 4 5 6 7 8 9 10 11 12 |
function remove_wordpress_version_number() { return ''; } add_filter('the_generator', 'remove_wordpress_version_number'); function remove_version_from_scripts( $src ) { if ( strpos( $src, 'ver=' . get_bloginfo( 'version' ) ) ) $src = remove_query_arg( 'ver', $src ); return $src; } add_filter( 'style_loader_src', 'remove_version_from_scripts'); add_filter( 'script_loader_src', 'remove_version_from_scripts'); |
XML-RPC را غیرفعال کنید
XML-RPC این مخفف نام ویژگی ای است که امکان اتصال از راه دور به وردپرس را می دهد. به عنوان مثال، وبلاگ نویسی ها از آن برای لینک های متنی و لینک های پینگ استفاده می کنند. متأسفانه، XML-RPC گاهی اوقات هدف هکرها است، به همین دلیل باید با افزونه Disable XML-RPC Pingback را از آن محافظت کنید.
به روز رسانی مستمر وردپرس
همانطور که در تصویر بالا مشاهده کردید یکی از رایج ترین روش های هک از طریق پلاگین، هسته و قالب WordPress هست. تیم وردپرس هر روز در حال به روزرسانی، رفع اشکالات و باگ های امنیتی وردپرس می باشد. پس میزان قابل توجهی از نگرانی شما با به روز رسانی مداوم هسته، پلاگین و قالب وردپرس رفع خواهد شد.
اگر نمی دانید که چطور پلاگین ها را بروز کنید و یا با نکات مهم به روز رسانی آن از جمله به روز رسانی خودکار آشنایی ندارید، پیشنهاد میکنم حتما مطلب چطور پلاگین های وردپرس را به روز کنم را مطالعه نمایید.
از وردپرس بطور منظم بکاپ بگیرید
معمولا هکرها پس از نفوذ به سایت قربانی کدهای مخربی در آن تزریق می کنند که حتی روح قربانی هم از آن ها بی خبر است. با برگرداندن بکاپ می توان سایت را به حالت قبل از هک شدن برگرداند و راه های نفوذ را مجددا بررسی و رفع نمود.
اما خیلی از مدیران سایت را دیدم که اصلا خودشان بکاپ نمی گیرند و می گویند:
سرویس دهنده هاست خودش بکاپ میگیره!
در جواب این دوستان باید بگویم که بکاپ گیری باید توسط خود شما هم انجام شود و اصلا به سرویس دهنده هاست خود اطمینان نکنید! در خیلی از مواقع دیدم که بدلیل سهل انگاری، نبود بودجه برای تامین سرور بکاپ و یا شرایط خاص، سرویس دهنده هیچ بکاپی از سایت های میزبانی شده خود نداشته است.
پس حتما بکاپ گیری را مستمر و منظم انجام دهید تا در صورت بروز مشکلات این چنینی سریعا بکاپ را برگردانید.
یکی از روش های ساده برای ساخت فایل بکاپ از دیتابیس و فایل ها، استفاده از آموزش ساخت بسته نصب آسان توسط افزونه duplicator هست.
استفاده از گواهینامه SSL و HTTPS کردن وردپرس
استفاده از رمزگذاری SSL باعث می شود اطلاعات حساس از رمزنگاری شده رد و بدل شوند. رمزگذاری SSL برای محافظت از جزئیات ورود به سیستم و اطلاعات رد و بدل شده توسط کاربر و سرور استفاده می شود.
سعی می کنم بزودی روش های دریافت گواهینامه SSL رایگان و HTTPS کردن وردپرس را طی مقاله ای به شما آموزش دهم.
امینت وردپرس شما چقدر است؟
در بالا، با تهدیدات و روش های هک WordPress آشنا شدید. همچنین درباره روش های افزایش امنیت وردپرس اطلاعات کسب کردید. از بهترین روشهای امنیتی وردپرس در مورد محافظت در هنگام ورود به بخش مدیریت، افزایش سطح امنیت وردپرس از طریق فایل های wp-config.php و .htaccess گرفته تا افزونه های امنیتی.
کارهای بسیاری وجود دارد که می توانید برای بستن و یا سخت کردن راه های نفوذ به سایت انجام دهید.
توجه کنید که لازم نیست همه اقدامات بالا را انجام دهید. حتی اگر فقط کارهای مقدماتی امنیت را انجام دهید، از بسیاری سایت های وردپرسی امنیت بیشتری خواهید داشت.
به هرحال، بیشتر اقدامات امنیتی وردپرس زمان کمی از شما برای اجرا می گیرند. شاید بخواهید بهتر شدن امنیت وردپرس تان، ده دقیقه ای وقت بگذارید. چند دقیقه وقت گذاشتن برای ارتقاء امنیت بهتر است از ازدست دادن سایتی که ماه ها روی آن وقت گذاشتید.
تجربه شما در رابطه با امنیت وردپرس و نکات دیگری که در این مقاله ذکر نشده است چیست؟
در بخش نظرات تجربه خود را با همه دوستان وردپرس کار درمیان بگذارید.
درباره بهروز قاسمی
عاشق راه اندازی کسب و کارهای اینترنتی... مدرس و مشاور دیجیتال مارکتینگ/ موسس وب سایت مدیران وردپرس/ مدیر واحد دیجیتال مارکتینگ شرکت آوب
نوشته های بیشتر از بهروز قاسمی
😟 شرمنده ام!
خیلی ناراحت شدم که این مطلب برای شما کاربردی نبود 🙁 به کمکت نیاز دارم تا این محتوا رو بهتر کنم. لطفا پیشنهادت رو برام از طریق فرم زیر ارسال کن تا کیفیت این محتوا رو بیشتر کنم. 🙏
لغو پاسخ
خیلی ناراحت شدم که این مطلب برای شما کاربردی نبود 🙁 به کمکت نیاز دارم تا این محتوا رو بهتر کنم. لطفا پیشنهادت رو برام از طریق فرم زیر ارسال کن تا کیفیت این محتوا رو بیشتر کنم. 🙏
لطفا برای اینکه به ما انگیزه و انرژی بیشتری بدی، از طریق فرم زیر برای ما نظرت رو ارسال کن. 😍