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

این فکر اشتباه که وردپرس به صورت پیش فرض کاملاً امن است، در بیشتر موارد باعث هک شدن سایت های وردپرسی می شود. اما نکته مهم اینجاست که بحث امنیت در تمام زمینه ها، یک چیز نسبی است و هیچگاه مطلق نیست. یعنی اینکه شما نمی توانید با انجام دادن یکسری موارد امنیتی بر روی وب سایت خود بگویید که سایت من ۱۰۰% امن است اما با این وجود همیشه باید حداکثر موارد امنیتی رعایت شود تا به سادگی مورد حمله هکرها قرار نگیریم.

بد نیست که بدانید طی تحقیقات مشخص شده ۷۰% از  سایت های معروف دنیا آسیب پذیر هستند. در این مقاله از digital98.ir روش های بسیار مفیدی را به شما معرفی می کنیم که تا حد بسیار بسیار بالایی از هک شدن وب سایت وردپرسی شما در توسط هکرهای انسانی یا ربات جلوگیری می کنند.

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

۱- تهیه نسخه پشتیبان به صورت منظم (Backup یا Full Backup)

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

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

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

شرکت های هاستینگ معتبر معمولاً به صورت روزانه از اطلاعات وب سایت ها به صورت فول بک آپ (full backup)، نسخه پشتیبان تهیه می کنند و این بحث تا حد زیادی باعث بالارفتن امنیت وب سایت و آرامش خاطر مدیران وب سایت ها خواهد شد پس در هنگام تهیه هاستینگ برای وب سایت خود مورد نسخه پشتیبان روزانه را حتماً در نظر بگیرید.

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

۲- به روز نگهداشتن وردپرس، قالب و افزونه ها

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

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

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

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

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

۳- دریافت افزونه ها و پوسته ها را از منابع معتبر

زمانی که شما یک افزونه یا پوسته وردپرس را از منابع غیر رسمی دریافت می کنید ممکن است کدهایی به آن افزونه یا پوسته اضافه شده باشند که امنیت وب سایت وردپرس شما را تهدید کنند پس همیشه از منابعی مانند WordPress.org ، Themeforest.net و یا وب سایت توسعه دهنده همان افزونه و یا پوسته فایل های خود را دریافت کنید.

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

۴- تعیین صحیح سطح دسترسی فایل ها و پوشه های سایت

بعد از نصب وردپرس حتماً دسترسی های فایل ها و پوشه ها وردپرس را به صورت صحیح تنظیم کنید. از دسترسی های ۷۵۰ به جای دسترسی ۷۷۷ برای پوشه های عمومی استفاده کنید. برای فایل ها هم از سطح دسترسی ۶۴۰ یا ۶۴۴ و برای فایل wp-config.php از سطح دسترسی ۶۰۰ استفاده کنید.

۵- نصب افزونه مخصوص امنیت وردپرس

تعداد افزونه های رایگان و تجاری در زمینه امنیت وردپرس روز به روز در حال گسترش است این افزونه ها ویژگی هایی مانند حداکثر تعداد ورود ناموفق به سایت، رمزهای عبور قوی، تغییر آدرس صفحه ورود وردپرس، اعتبارسنجی دو مرحله ای (مثلاً وارد کردن رمز و ارسال کد امنیتی از طریق پیامک) و … را به وب سایت وردپرس شما اضافه می کنند.

نکته ای که باید به آن توجه داشته باشید این است که هیچ کدام از این افزونه ها (یا چند افزونه امنیتی) امنیت کامل وب سایت شما را تضمین نمی کنند، اما وب سایت وردپرسی شما در برابر اکثر حملات معروف هکرها ایمن تر می کنند.

۶- تهیه بهترین هاست برای سایت وردپرستان

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

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

معمولاً هاست های ارزان از سرورهای اجاره ای خارج از کشور استفاده می کنند و خدمات ضعیف تری نسبت به هاستینگ هایی که خودشان دارای سرور هستند و مخصوصاً در ایران هستند را ارائه می دهند. یک هاستینگ مخصوص وردپرس دارای ویژگی هایی مانند دیواره اتش سازگار با وردپرس، PHP و MySql بروز و تنظیمات همگام با وردپرس است.

۷- مخفی کردن نام های کاربری

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

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

مثلاً با استفاده از کد زیر و قرار دادن آن در فایل functions.php پوسته خود می توانید اینکار را انجام دهید؛

add_action(‘template_redirect’, ‘bwp_template_redirect’);
function bwp_template_redirect()
{
if (is_author())
{
wp_redirect( home_url() ); exit;
}
}

۸- محدودیت دسترسی به ناحیه مدیریت وردپرس بوسیله فایل htaccess

یک روش ساده و مفید برای محدود کردن دسترسی به ناحیه مدیریت وردپرس استفاده از فایل htaccess است که بوسیله ان می توانید فقط به یکسری آی پی (IP) خاص اجازه ورود داد. شما می توانید فایل های جداگانه htaccess را ایجاد کنید و در پوشه wp-admin بارگذاری کنید.

هشدار : فایل اصلی htaccess که در ریشه وردپرس است را ویرایش نکنید فقط و فقط یک فایل در سیستم خود یا مسیر wp-admin سایت با نام .htaccess را ایجاد کنید و کدهای خود را در آن قرار دهید.

کدهای فایل htaccess برای یک آی پی مانند زیر می باشد؛

order deny,allow
allow from 192.168.5.1
deny from all
کدهای فایل htaccess برای چند آی پی مانند زیر می باشد :

order deny,allow
allow from 192.168.5.1
allow from 123.456.7.8
deny from all

نکته مهم: فراموش نکنید که آدرس های آی پی موجود در کدهای بالا را با آدرس آی پی خود جایگزین کنید. ضمناً چنانچه از یک یا چند سیستم دیگر توانستید به مدیریت سایت خود دسترسی داشته باشید مطمئن باشید فایل htaccess شما صحیح نیست و باید آن را با کدهای صحیح ویرایش کنید.

۹- محافظت از فایل wp-config.php

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

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

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

order allow,deny
deny from all

در نتیجه فایل htaccess شما باید شبیه تکه کد زیر شود:

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ –

[L] RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

order allow,deny
deny from all

۱۰- محدودیت تلاش جهت ورود به سایت

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

از معروفترین افزونه های محدود کردن تعداد تلاش ورود به سایت وردپرس می توان به Login Lockdown و Login Security Solution اشاره کرد.

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

order allow,deny
deny from 202.090.21.1
deny from 204.090.21.2
allow from all

۱۱- محدودیت دسترسی به پوشه wp-content

پوشه wp-content شامل تمام اطلاعات وب سایت وردپرسی شما مانند تصاویر، پوسته ها، افزونه ها و … است پس یکی از پوشه هایی است که باید اهمیت ویژه ای از لحاظ امنیتی به آن اختصاص داد.

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

کدهای زیر را در یک فایل htaccess قرار دهید و در پوشه wp-content قرار دهید.

Order deny,allow
Deny from all

Allow from all

۱۲- محافظت از فایل htaccess وب سایت وردپرسی

اکنون که ما چندین کار امنیتی را بوسیله فایل htaccess انجام دادیم نوبت آن است که از خود فایل htaccess نیز محافظت کنیم تا کسی نتواند محتویات آن را تغییر دهید. با استفاده از تکه کد زیر هیچ کسی نمی تواند محتوای فایل هایی که اسم آنها شامل ” hta” هستند را مشاهده کند.

order allow,deny
deny from all
satisfy all

شما می توانید کد بالا را قبل از #BEGIN و یا بعد از #END قرار دهید تا مطمئن شوید که در بروزرسانی های بعدی وردپرس مشکلی رخ نخواهد داد. همچنین این کد باید در فایل htaccess ریشه وردپرس اعمال شود. قبل از اعمال تغییرات حتماً از فایل htaccess سایت خود نسخه پشتیبان تهیه کنید.

نتیجه گیری

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

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