جدید آموزش

امنیت در وردپرس

در این مقاله قصد داریم مبحث امنیت در وردپرس را به طور کامل تشریح کنیم، وب پناه با جمع آوری سر تیترهای مهم امنیتی در وردپرس به تشریح هر یک از آن ها خواهد پرداخت.

سیستم مدیریت محتوای وردپرس و هسته اصلی آن احتمال خیلی کمی دارد که مشکل امنیتی داشته باشد چون قبل از انتشار به طور متعدد کدهای آن بررسی و اشکال زدایی می شود.

امنیت در وردپس به دو قسمت تقسیم می شود:

  1. امنیت قالب ها و پلاگین ها
  2. امنیت هاست یا فضای مجازی شما در اینترنت

یکی از رایج ترین کارها در وردپرس استفاده از قالب ها و پلاگین های کرک شده است که به شدت وب سایت ما را آسیب پذیر می کند. معمولا داخل این پلاگین ها و قالب ها کدهای مخرب قرار داده می شود و پیشنهاد ما استفاده از قالب ها و پلاگین های اورجینال است.

مبحث دیگری که معمولا خیلی به امنیت وب سایت ما بر میگردد فضای ذخیره سازی اطلاعات ما است که باید به خوبی امنیت آن را تامین کنیم و راه های نفوذ به آن و اجرای کدهای مخرب را مسدود کنیم.

موارد ذکر شده به طور کامل و جداگانه مورد بحث و بررسی قرار خواهد گرفت.

در چک لیست ارائه شده بیش از 15 مورد امنیتی در وردپرس مورد بررسی قرار می گیرد.

بدون شک این مقاله در زمینه امنیت وردپرس جزء کامل ترین ها است. علاوه بر چک لیست مورد نظر تجربه شخصی خود را در امنیت وردپرس در اختیار شما عزیزان قرار خواهم داد.

وب پناه با رعایت تمام اصول امنیتی در طراحی سایت و بررسی تمامی خطوط کدها این اطمینان را به شما خواهد داد که در خصوص امن سازی سایت خود با مشکلی مواجه نشوید، با وب پناه همراه باشید.

چک لیست امنیتی وردپرس:

  1. به روزرسانی وردپرس
  2. نام کاربری و رمز عبور
  3. تغییر پیشوند جداول پایگاه داده
  4. بررسی سایت exploit-db.com
  5. تنظیمات اصلی وردپرس
  6. معرفی افزونه های امنیتی
  7. غیر فعال کردن کدهای HTML در بخش نظرات
  8. تهیه بکاپ
  9. مدیریت پلاگین ها و قالب ها
  10. احراز هویت دو مرحله ای
  11. مخفی سازی اطلاعات وردپرس
  12. حفاظت و جلوگیری از سرقت پهنای باند
  13. قرار دادن رمز عبور بر روی پوشه مدیریت وردپرس
  14. غیر فعال کردن توابع نا امن
  15. تامین امنیت پوشه های uploads, wp-includes, wp-content
  16. غیر فعال کردن ویرایشگر داخلی وردپرس
  17. استفاده از HTTPS و SSL
  18. غیر فعال کردن نمایش فهرست فایل ها
  19. غیر فعال کردن Login Error Messages
  20. انتقال فایل wp-config.php به مکانی امن
  21. انکد کردن محتویات فایل wp-config.php

مطالب این مقاله (امنیت در وردپرس) به مرور زمان تکمیل می شود و موارد دیگر اضافه خواهد شد، با وب پناه همراه باشید.

1. به روزرسانی وردپرس

وردپرس یک نرم افزار منبع باز است که به طور مرتب به روزرسانی می شود. به طور پیش فرض وردپرس به طور خودکار به روزرسانی های جزئی را انجام می دهد. اما برای نصب به روزرسانی های اصلی باید به صورت دستی اینکار انجام شود.

وردپرس همچنین دارای هزاران پلاگین می باشد که توسط افراد ثالث کدنویشی شده اند و آن ها هم مرتبا به روزرسانی می شوند.

این به روزرسانی ها برای امنیت و ثبات وب سایت وردپرس شما بسیار مهم است. شما باید مطمئن شوید که هسته، افزونه ها و قالب های شما همیشه به روزرسانی می شوند.

وردپرس این امکان را نیز فراهم کرده که در صورت نیاز به روزرسانی های  خود را بدون تائید ما نصب نماید فقط کافی است قطعه کد زیر را به فایل wp-config.php (در ریشه وب سایت قرار دارد) اضافه کنید.

define( 'WP_AUTO_UPDATE_CORE', true );

2. نام کاربری و رمز عبور

نام کاربری و رمز عبور شما تنها راه برای دسترسی به حساب کاربریتان می باشد و از این رو حائز اهمیت است.

معمولا افراد وقتی در مورد رمز عبور صحبت می کنند فورا کلماتی که همیشه در یادشان می ماند را به خاطر می آورند و این بدترین اشتباه در مورد انتخاب رمز ها برای حساب های کاربری است.

وقتی شما از کلمات قابل پیشبینی برای حساب های خود استفاده می کنید خیلی راحت خود را در معرض خطر دسترسی غیر مجاز قرار می دهید.

وقتی شما از رمزهای عبور ساده استفاده می کنید افراد سودجو با استفاده از بدافزار ها رمزهای عبور قابل پیشبینی را به سرعت امتحان می کنند.

به این نوع حملات معمولا حملات دیکشنری می گویند.

انتخاب رمز عبور امن

رمز عبور شما می تواند شامل حروف a-z A-Z, اعداد 0-9 و کاراکترهای خاص ذیل باشند:

+?=()&,.:;-_/*@!#~`#$%^&[]{}|\'”<>

رمز عبور شما باید:

  • همانند نام کاربریتان نباشد.
  • به طول حداقل 8 تا 64 کاراکتر باشد.
  • شامل ترکیبی از کاراکترها، اعداد و حروف (حداقل دو کاراکتر، دو عدد و دو کاراکتر خاص) باشد.

رمزهای عبور ضعیف برای مثال:

el1m1nate5

trees

Mohammad12345

رمزهای عبور قوی برای مثال:

11vAG,&ZC3}LJ8D

soph03111984-Isticated

wood-bicycle-phone-mouse

پیشنهاد ما استفاده از رمز عبور پیشنهادی وردپرس در قسمت رمز عبور است.

3. تغییر پیشوند جداول پایگاه داده

هنگام راه اندازی وب سایت وردپرسی در مرحله انتخاب پایگاه داده یک قسمت به نام پیشوند جداول قرار دارد که در ابتدای همه جداول وردپرسی قرار می گیرد و اگر آن را تغییر ندهیم نام جداول ما خیلی راحت قابل حدس زدن می شود و و اگر نفوذ گر به پایگاه داده ما دسترسی پیدا کند با دستورات SQL می تواند به اطلاعات سایت دسترسی پیدا کند.

برای آموزش تغییر پیشوند جداول می توانید از لینک ذیل دیدن بفرمائید:

آموزش تغییر پیشوند جداول وردپرس

4. بررسی سایت exploit-db.com

در این سایت به طور روزانه باگ های کشف شده توسط هکرها قرار می گیرد.

ما با استفاده از این سایت می توانیم پلاگین هایی که دچار آسیب امنیتی هستند را پیدا کنیم و از استفاده آن ها در وب سایت وردپرسی خود پرهیز کنیم.

5. تنظیمات اصلی وردپرس

عضویت کاربران

یکی از گزینه های قابل دسترس در وردپرس اجازه دادن به همه افراد برای ایجاد حساب کاربری داخل سایت است.

اگر این گزینه فعال باشد و برای قسمت ایجاد حساب کاربری محدودیتی ایجاد نکنیم نفوذ گران با استفاده از بات می توانند تعداد زیادی کاربر جعلی داخل وب سایت ایجاد کنند و باعث اخلال در عملکرد وب سایت شوند.

برای غیر فعال کردن این گزینه باید به قسمت تنظیمات>عمومی بروید و از بخش عضویت تیکه این گزینه را بردارید.

تنظیمات عضویت

تنظیمات گفت و گو

غیر فعال کردن بازتاب ها

کاربرد بازتاب ها این است که وقتی شما از مطالب سایت دیگری استفاده می کنید و لینک آن را در سایت خود قرار می دهید یک بازتاب به قسمت دیدگاه وب سایت مذکور ارسال می شود و مدیران آن سایت را از این اقدام شما مطلع می کند.

متاسفانه برخی افراد سودجو با استفاده از این امکان تعداد زیادی لینک اسپم را به صورت بازتاب به سایت شما می فرستند تا بک لینک های خود را زیاد کنند.

برای غیر فعال کردن بازتاب ها کافی است به تنظیمات>گفت و گو بروید و از بخش آگاه سازی پیوندی تیکه این گزینه را بردارید.

تنظیمات بازتاب ها

فعال کردن تائید دستی نظرات

در این قسمت می توانید تعیین کنید که همه دیدگاه ها باید به صورت دستی تائید شوند.

می توانید تیک دیدگاه‌ها باید به صورت دستی تأیید شوند را بزنید.

وقتی این گزینه فعال باشد می توانید از درج دیدگاه ها به صورت اتوماتیک جلوگیری کنید.

کاربرد این گزینه این است که از انتشار نظرات اسپم و یا نظراتی که ممکن است دارای کلمات مستهجن باشد جلوگیری کنید.

تنظیمات تائید دیدگاه ها

تنظیمات گفت و گو امکانات مختلفی را در اختیار ما قرار می دهند. می توانید دیگر بخش های این قسمت را متناسب با نیاز خود تغییر دهید.

6. معرفی افزونه های امنیتی

چرا باید از پلاگین های امنیتی وردپرس استفاده کنیم؟

هر هفته حدودا 18.5 ملیون وب سایت به بدافزار ها و کدهای مخرب آلوده می شوند. به طور متوسط روزانه 44 بار به سایت های وردپرسی و غیر وردپرسی حمله می شود.

ایرادات امنیتی می تواند صدمات غیر قابل جبرانی به کسب و کارهای شما وارد کند.

استفاده از افزونه های امنیتی وردپرس کار را برای نفوذگران سخت تر می کند و این امکان را به شما می دهد که به طور روزانه وب سایت خود را اسکن نموده و اشکلات امنیتی آن را رفع بنمایید.

در قسمت ذیل 6 پلاگین امنیتی وردپرسی را تیتر وار معرفی می کنیم و در آینده آموزش مربوط به هر یک از آن ها را در داخل وب پناه قرار خواهیم داد!

توجه: فقط از یک پلاگین امنیتی لیست ذیل استفاده کنید! فعال کردن چندین پلاگین امنیتی منجر به اشکالاتی در سایت می شود.

6 پلاگین امنیتی وردپرس:

برای معرفی کامل 6 پلاگین امنیتی وردپرس می توانید از لینک ذیل دیدن بفرمائید:

6 پلاگین برتر امنیتی وردپرس

7. غیر فعال کردن کدهای HTML در بخش نظرات

به صورت پیشفرض کدهای HTML و JavaScript در قسمت نظرات سایت وردپرسی شما اجرا می شوند.

یکی از خطرات خواندن این کدها قرار دادن لینک های اسپم در قسمت نظرات و اجرای کدهای جاوا اسکریپت است.

با توجه به یکسری توابع موجود در جاوا اسکریپت می توان کدی را در قسمت نظرات قرار داد که بعد از مراجعه کاربر به این صفحه به طور اتوماتیک به صفحه دیگری خارج از سایت هدایت شود که برای سئو و بهینه سازی سایت بسیار مضر است.

برای غیر فعال کردن کدهای HTML و JavaScript باید کدهای ذیل را در فایل functions.php قالب فعال وردپرس خود قرار دهید.

<?php
function wptime_process_comment( $commentdata ) {	
	$commentdata['comment_content'] = strip_tags( $commentdata['comment_content'], '<a>' );
}
	
add_filter( 'preprocess_comment', 'wptime_process_comment' );
add_filter( 'comment_text', 'wp_filter_nohtml_kses' );
add_filter( 'comment_text_rss', 'wp_filter_nohtml_kses' );
add_filter( 'comment_excerpt', 'wp_filter_nohtml_kses' );
	
function remove_html( $comment ) {		
	return strip_tags($comment, '<strong><b><em><p>');
		
}
	
add_filter( 'get_comment_text', 'remove_html' );	
?>

8. تهیه بکاپ

تهیه بکاپ های منظم از وب سایت وردپرسی خود بهترین کاری است که می توانید برای امنیت وب سایت خود انجام دهید. تهیه بکاپ به شما این اطمینان را می دهد که در مواقع فاجعه آمیز وب سایت خود را نجات دهید مثل مواقعی که سایت شما هک شده و اطلاعاتتان از بین رفته است.

افزونه های مختلفی برای بکاپ گیری در وردپرس وجود دارد که ما 7 مورد از بهترین های آنان را به صورت تیتر وار معرفی میکنیم.

7 پلاگین بکاپ گیری وردپرس:

توجه: با توجه به بکاپ گیری سرویس ارائه دهنده فضای میزبانی، شاید این توجیح را پیدا کنید که دیگر احتیاج به تهیه بکاپ از سایتتان ندارید اما باید توجه داشته باشید که نمی توانید اطمینان 100% به این سرویس دهنده ها کنید و کار معقول تهیه فایل بکاپ به طور منظم از وب سایتتان است.

برای معرفی کامل 7 پلاگین بکاپ گیری وردپرس می توانید از لینک ذیل دیدن بفرمائید:

7 پلاگین برتر بکاپ گیری وردپرس

9. مدیریت پلاگین ها و قالب ها

یکی از مهم ترین مباحث در امنیت وردپرس توجه به پلاگین ها و قالب های نصب شده در سیستم مدیریت محتوای وردپرس است.

هر چه تعداد پلاگین های نصب شده در وردپرس بیشتر باشد هم بر روی امنیت آن و هم سرعت سایت ما تاثیر منفی می گذارد.

از آن رو که اکثر کاربران وردپرس فاقد دانش برنامه نویسی و تخصص در این زمینه هستند تمامی نیاز های خود را با نصب پلاگین ها رفع می نمایند که این خود باعث آسیب به سایتشان می شود.

پیشنهاد وب پناه این است که تا حد ممکن از نصب پلاگین ها و قالب های نال شده و غیر معتبر خود داری کنید و حتما با یک شرکت طراحی سایت قرار داد پشتیبانی فنی وب سایت انعقاد کنید.

تیم وب پناه همواره برای انجام تغییرات دلخواه شما در دسترس است که این تغییرات در هر زمینه ای قابل انجام است مثل رفع عیوب سایت، کد نویسی اختصاصی برای قسمت های مختلف سایت، بروز نگه داشتن پلاگین های وب سایت وردپرسی، ایجاد تغییرات دلخواه و تامین امنیت کامل کسب و کار شما.

10. احراز هویت دو مرحله ای

تا به حال به این مورد توجه کرده اید که سایت های معروف مثل گوگل و فیسبوک این امکان را به کاربران می دهند که علاوه بر نام کاربری و رمز عبورشان یک مرحله اضافی دیگر برای امنیت بیشتر پنل کاربری شان در نظر بگیرند؟

این مرحله باعث امنیت بیشتر حساب کاربری ما می شود به طوری که قبل از ورود به پنل کاربری باید علاوه بر نام کاربری و رمز عبور هویت ما توسط شماره تلفن نیز تائید شود.

احراز هویت دو مرحله ای به ما این امکان را می دهد که اگر حتی نام کاربری و رمز عبور ما به سرقت رفته باشد نیز کسی نتواند به اطلاعات ما دسترسی پیدا کند چون باید از طریق شماره تماس نیز هویت کاربر احراز شود.

افزونه های مختلفی برای احراز هویت دو مرحله ای در وردپرس وجود دارد که ما 4 مورد از بهترین های آنان را به صورت تیتر وار معرفی میکنیم.

4 پلاگین احراز هویت دومرحله ای وردپرس:

برای معرفی کامل 4 پلاگین احراز هویت دو مرحله ای وردپرس می توانید از لینک ذیل دیدن بفرمائید (به زودی قرار گرفته می شود):

معرفی کامل 4 پلاگین احراز هویت دو مرحله ای وردپرس

11. مخفی سازی اطلاعات وردپرس

به طور پیش فرض وردپرس ورژن نصب شده خود را داخل کدهای وب سایت نمایش می دهد. این موضوع وقتی موجب آسیب می شود که وردپرس ما به آخرین نسخه بروز رسانی نشود و همین موضوع باعث ایجاد مشکلات امنیتی برای وب سایتمان می شود.

وقتی ورژن وردپرس ما نمایش داده شود اطلاعات خیلی مفیدی را برای هکران در دسترس قرار می دهد.

اگر ورژن وردپرس شما به روز باشد بابت این موضوع نگرانی خاصی نباید داشته باشید.

برای خلاص شدن از نمایش نسخه وردپرس خود می توانید قطعه کد زیر را به فایل functions.php قالب خود اضافه کنید:

<?php
function wpbeginner_remove_version() {
	return '';
}
add_filter('the_generator', 'wpbeginner_remove_version');
?>

توجه: علاوه بر وردپرس بعضی از افزونه های معروف مثل ووکامرس و صفحه سازها نیز ورژن خود را داخل کدها قرار می دهند که این مورد نیز باعث ضعف امنیتی وب سایت ما می شود! پیشنهاد وب پناه بروز نگه داشتن تمامی پلاگین ها و قالب ها و هسته ی وردپرس است.

12. حفاظت و جلوگیری از سرقت پهنای باند

hotlink چیست؟ هنگام استفاده از آدرس های اینترنتی مثل https://webpanah.com/wp-content/uploads/2020/03/Logo-1.png یک در خواست به سرور برای بارگیری تصویر ارسال می شود. اگر ما hotlink را داخل سایتمان فعال نکرده باشیم دیگران می توانند از آدرس های سایت ما استفاده کنند بدین صورت که از پهنای باند وب سایت ما کاسته شود.

برای رفع این مشکل می توانیم از دو طریق اقدام کنیم:

  • فعال کردن Hotlink از طریق سی پنل
  • فعال کردن Hotlink از طریق فایل .htaccess

فعال کردن Hotlink از طریق سی پنل:

Hotlink ویژگی است که در سی پنل گنجانده شده است. برای دسترسی به این بخش به قسمت SECURITY>HotlinkProtection بروید.

در صفحه HotlinkProtection می توانید این ویژگی را فعال بفرمائید.

محافظت از لینک

فعال کردن Hotlink از طریق فایل .htaccess:

برای جلوگیری از Hotlink می توانید قطعه کد زیر را مستقیما به فایل .htaccess اضافه کنید:

RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www.)?my-website.com/.*$ [NC] RewriteRule .(jpg|jpeg|gif|png|bmp)$ - [F] 

در قسمت my-website.com باید آدرس وب سایت خود را وارد بفرمایید.

13. قرار دادن رمز عبور بر روی پوشه مدیریت وردپرس

به طور پیش فرض وقتی /wp-admin  را بعد از آدرس سایت وارد می کنیم مستقیما به صفحه ورود وردپرس منتقل می شویم.

اگر بخواهیم قبل از ورود به این صفحه یک لایه امنیتی دیگر اضافه کنیم می توانیم بر روی پوشه wp-admin وردپرس رمز بگذاریم و برای دسترسی به این صفحه باید از دو لایه حفاظتی عبور کنیم.

برای قرار دادن رمز عبور بر روی پوشه wp-admin  وردپرس می توانید از آموزش ذیل استفاده نمایید ( به زودی قرار گرفته می شود):

آموزش قرار دادن رمز عبور بر روی پوشه wp-admin

14. غیر فعال کردن توابع نا امن

php توابع بسیار زیادی دارد که اگر به صورت صحیح استفاده نشوند می توانند برای هک وب سایت ها مورد استفاده قرار بگیرند. ما می توانیم با استفاده از دستور disable_functions و استفاده از فایل php.ini اجرای توابع خطرناک php را محدود کنیم.

این قابلیت باید توسط ارائه دهنده هاست شما در سرور فعال شود. برای غیر فعال کردن توابع نا امن از قطعه کد زیر در فایل php.ini استفاده می نماییم.

; cPanel-generated php ini directives, do not edit
; Manual editing of this file may result in unexpected behavior.
; To make changes to this file, use the cPanel MultiPHP INI Editor (Home >> Software >> MultiPHP INI Editor)
; For more information, read our documentation (https://go.cpanel.net/EA4ModifyINI)

; This directive allows you to disable certain functions for security reasons.
; It receives a comma-delimited list of function names. This directive is
; *NOT* affected by whether Safe Mode is turned On or Off.
; http://php.net/disable-functions
disable_functions ="apache_child_terminate,apache_get_modules,apache_note,apache_setenv,define_syslog_variables,disk_free_space,disk_total_space,diskfreespace,dl,escapeshellarg,escapeshellcmd,exec,extract,get_cfg_var,get_current_user,getcwd,getenv,getlastmo,getmygid,getmyinode,getmypid,getmyuid,ini_restore,ini_set,passthru,pcntl_alarm,pcntl_exec,pcntl_fork,pcntl_get_last_error,pcntl_getpriority,pcntl_setpriority,pcntl_signal,pcntl_signal_dispatch,pcntl_sigprocmask,pcntl_sigtimedwait,pcntl_sigwaitinfo,pcntl_strerrorp,pcntl_wait,pcntl_waitpid,pcntl_wexitstatus,pcntl_wifexited,pcntl_wifsignaled,pcntl_wifstopped,pcntl_wstopsig,pcntl_wtermsig,php_uname,phpinfo,popen,posix_getlogin,posix_getpwuid,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,posix_ttyname,posix_uname,posixc,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,ps_aux,putenv,readlink,runkit_function_rename,shell_exec,show_source,symlink,syslog,system"

توجه: امنیت در وردپرس فقط با نصب چندین پلاگین امنیتی و چند خط کد تامین نمی شود. برای تامین کامل امنیت وب سایتمان باید مجهز به مجموعه ای از ابزارها و دانش تخصصی در این زمینه باشیم.

15. تامین امنیت پوشه های uploads, wp-includes, wp-content

معمولا نفوذ گران برای دسترسی به اطلاعات ما به هر طریقی که می توانند می خواهند فایلی را داخل هاست ما آپلود کنند و با استفاده از آن کدهای مخرب خود را به اجرا در بیاورند.

برای جلوگیری از این کار ما باید اجرای مستقیم فایل ها را محدود کنیم.

کدهای مربوط به هر قسمت را در فایل .htaccess قرار می دهیم و آن را در پوشه مربوط میگذاریم.

امن سازی پوشه wp-content:

<FilesMatch "\.(?i:php)$">
  <IfModule !mod_authz_core.c>
    Order allow,deny
    Deny from all
  </IfModule>
  <IfModule mod_authz_core.c>
    Require all denied
  </IfModule>
</FilesMatch>

امن سازی پوشه wp-includes:

<FilesMatch "\.(?i:php)$">
<IfModule !mod_authz_core.c>
Order allow,deny
Deny from all
</IfModule>
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
</FilesMatch>

<Files wp-tinymce.php>
<IfModule !mod_authz_core.c>
Allow from all
</IfModule>
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
</Files>

<Files ms-files.php>
<IfModule !mod_authz_core.c>
Allow from all
</IfModule>
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
</Files>

امن سازی پوشه uploads:

<FilesMatch "\.(?i:php)$">
  <IfModule !mod_authz_core.c>
    Order allow,deny
    Deny from all
  </IfModule>
  <IfModule mod_authz_core.c>
    Require all denied
  </IfModule>
</FilesMatch>

16. غیر فعال کردن ویرایشگر داخلی وردپرس

در داخل پنل وردپرس ویرایشگری برای تغییر کدهای قالب و پلاگین ها وجود دارد. در نگاه اول این قابلیت بسیار مفید به نظر می رسد اما با فعال بودن این قابلیت و ترکیب آن با یک سری از آسیب پذیری ها می تواند در آینده باعث مشکلات امنیتی شود.

این ویرایشگر در قسمت نمایش>ویرایشگر پوسته یا افزونه ها>ویرایشگر افزونه قرار دارد. این ویرایشگر مستقیما فایل ها را از داخل سرور تغییر می دهد بنابر این اگر نفوذگر به پنل وردپرس ما دسترسی داشته باشد می تواند انواع کدهای مخرب خود را اجرا کند.

برای غیر فعال کردن این ویرایشگر فایل wp-config.php خود را باز کنید و این قطعه کد را به آن اضافه نمایید:

define( 'DISALLOW_FILE_EDIT', true );

17. استفاده از HTTPS و SSL

HTTPS چیست؟

HTTPS یا Secure HTTP یک روش رمز گذاری است که ارتباط امن بین مرورگر کاربران و سرور شما را تضمین می کند. استفاده از HTTPS باعث می شود که هکرها نتوانند به داده های ارسالی بین مرورگر و سرور دسترسی پیدا کنند.

چرا به HTTPS و SSL نیاز داریم؟

یکی از دلایل اصلی آن بیانیه گوگل در مورد سئو وب سایت ها بود. اگر وب سایت شما از SSL استفاده کند در گوگل رتبه های بالاتری را کسب می کنید.

اگر وب سایت شما از SSL استفاده نکند یک پیغام با عنوان Not secure در بالای مرورگر به کابران نشان داده می شود و همین امر باعث کاهش بازدیدکنندگان وب سایت شما می شود. این بدین معنی است که وب سایت شما قابل اطمینان نمی باشد.

اگر داخل وب سایت خود از درگاه های بانکی و یا پرداخت اینترنتی استفاده می کند حتما باید از SSL استفاده کنید تا اطلاعات بانکی کاربران به طور ایمن ارسال شود.

استفاده از SSL فقط مختص به وردپرس نمی باشد. SSL یکی از اصول اولیه برای امن سازی وب سایت ها می باشد و هر سایتی باید این مورد را رعایت کند.

برای انتقال وب سایت وردپرسی خود از HTTP به HTTPS می توانید از آموزش ذیل استفاده نمایید ( به زودی قرار گرفته می شود):

آموزش انتقال http به https در وردپرس

18. غیر فعال کردن نمایش فهرست فایل ها

غیر فعال کردن نمایش فهرست فایل ها

نمایش فهرست فایل ها این امکان را به هکرها می دهد که با مشاهده فایل های موجود بتوانند فایل های آسیب پذیر را شناسایی کند و از آن ها برای دسترسی به وب سایت شما استفاده کنند.

علاوه بر این موضوع سایر افراد هم می توانند فایل های شما را مشاهده کنند، تصاویر را کپی کنند و ساختار وب سایت و اطلاعات شما را پیدا کنند. به همین دلایل باید از نمایش فهرست فایل ها جلوگیری به عمل آید.

برای این کار باید با استفاده از برنامه های FTP و یا cPanel خود وارد فضای ذخیره سازیتان شوید و از ریشه سایت فایل htaccess. را ویرایش کنید. فقط کافی است این قطعه کد را به انتهای فایل اضافه کنید.

Options -Indexes

قبل از ویرایش فایل htaccess. حتما یک کپی از آن داشته باشید تا اگر به مشکلی برخورد نمودید این فایل را به حالت اول برگردانید.

19. غیر فعال کردن Login Error Messages

به طور پیش فرض، وردپرس هنگام وارد کردن نام کاربری و یا رمز عبور نادرست در صفحه ورود پیغام های خطا را نشان می دهد. از این پیغام های خطا می توان به عنوان یک اشاره برای حدس زدن نام کاربری و رمز عبور استفاده کرد. در این قسمت می خواهیم غیر فعال کردن این نوع پیغام ها را بررسی کنیم.

invalid-username

اگر در صفحه ورود نام کاربری نادرستی را وارد کنید این پیغام را وردپرس نمایش می دهد:

نام کاربری ناشناس. دوباره بررسی نمایید یا از آدرس ایمیل خود استفاده نمایید.

اگر رمز عبور را اشتباه وارد کنید وردپرس این پیغام را نمایش می دهد:

خطا: رمز عبوری که برای نام کاربری webpanah وارد شده درست نیست. رمز عبورتان را گم کرده‌اید؟

اگر کسی تلاش کند نام کاربری و رمز عبور شما را حدس بزند با نمایش این پیغام ها متوجه اشتباهات خود می شود. پیغام های وردپرس بدین صورت است که اگر نام کاربری را درست حدس بزنید ارور مربوط به نام کاربری دیگر نمایش داده نمی شود و فقط پیغام خطای رمز عبور نشان داده می شود.

پنهان کردن پیغام های صفحه ورود وردپرس

برای پنهان کردن این پیغام ها به راحتی می توانید قطعه کد زیر را به فایل functions.php قالب اضافه کنید.

function no_wordpress_errors(){
  return '';
}
add_filter( 'login_errors', 'no_wordpress_errors' );

حال اگر کسی نام کاربری و یا رمز عبور اشتباهی را وارد کند وردپرس هیچگونه پیغامی را مبنی بر اشتباه بودن نام کاربری و رمز عبور وارد شده نمایش نمی دهد. همچنین شما می توانید پیغام های سفارشی شده خود را به جای ارورهای پیش فرض وردپرس به کاربران نمایش دهید.

20. انتقال فایل wp-config.php به مکانی امن

با وجود اینکه از نسخه 2.6 وردپرس به بعد این امکان فراهم است تا فایل حساس wp-config.php را به مکانی امن و خارج از

پوشه ریشه وردپرس منتقل کرد، اما باز هم کاربران نسبت به این کار بی توجه هستند.

همان طور که اشاره شد اگر وردپرس فایل wp-config.php را در پوشه ریشه خود نیابد، به صورت خودکار به یک دایرکتوری بالاتر می رود و به دنبال فایل wp-config.php می گردد.

بنابر این به سادگی میتوانیم با انتقال فایل wp-config.php به یک دایرکتوری بالاتر از پوشه ریشه وردپرس (که معمولا ریشه سایت ماست) سطح امنیت را بالاتر ببریم.

لازم به ذکر است که تنظیمات اصلی وب سایت ما و اطلاعات پایگاه داده از قبیل نام پایگاه داده، نام کاربری و رمز عبور در این فایل ذخیره می شوند!

21. انکد کردن محتویات فایل wp-config.php

در زبان PHP و با بهره گیری از نرم افزارهایی همچون ZendGaurd یا ionCube می توانید کدهای نوشته به زبان php را به صورت رمز شده در آورده از کنجکاوی های نا به جا افراد تا حد ممکن جلوگیری به عمل آورید.

حال برای افزایش امنیت وردپرس خود می توانید محتوی فایل های حساس وردپرس خود را همچون wp-config.php را به وسیله ابزارهای فوق به صورت رمز شده در آورده و مورد استفاده قرار دهید.

توجه داشته باشید که برای اجرای فایل های انکد شده، سرور میزبان شما باید اکستنشن های مربوط به این نرم افزارها را نصب داشته باشد.

امنیت در وردپرس

وب پناه

این مقاله به کوشش هیئت تحریریه وب پناه تولید شده است. تک تک ما امیدواریم که با تلاش خود، تاثیری هر چند کوچک در آگاه سازی فعالان حوزه دنیای وب داشته باشیم.

آخرین مطالب:

دیدگاه (5)

در بحث‌‌ پیرامون این مقاله شرکت کنید!
  1. Profile Picture

    رضا

    مقاله ی خوب و قابل قبولی بود از همه لحاظ ممنون

    • Profile Picture

      وب پناه

      خواهش میکنم، این صفحرو ذخیره کنید مطالب این مقاله به مرور زمان تکمیل خواهد شد و موارد بیشتری مورد بررسی قرار خواهد گرفت.

      • Profile Picture

        رضا

        خیلی ممنون از لطف شما حتما دنبال میکنم این مقالرو!

  2. Profile Picture

    علی احمدوند

    بخش 19 که عرض کردید میتونیم پیغام های دلخواه خودمون رو به کاربر نشون بدیم، چطور باید اینکارو کنیم؟

    • Profile Picture

      وب پناه

      برای اینکه پیغام دلخواهمون رو نمایش بدیم باید بین تک کوتشن ها مقدار خودمون رو جایگذاری کنیم، به قطعه کد زیر توجه کنید:

      
      function no_wordpress_errors(){
        return 'اشتباهی رخ داده است!';
      }
      add_filter( 'login_errors', 'no_wordpress_errors' );
      

      در قسمت return هر پیغامی قرار بدیم به کاربران نمایش داده می شود.

دیدگاه

در بحث‌‌ پیرامون این مقاله شرکت کنید!