بحث امنیت وردپرس اغلب نادیده گرفته می شود و یا اینکه بسیار به آن بی توجهی می شود . اکثر مدیران وب سایت ها و مخصوصاً وب سایت های وردپرسی تا هنگامی که سایت آنها مورد هک قرار نگیرد ، معمولاً در فکر تامین امنیت آن نیستند .
این فکر اشتباه که وردپرس به صورت پیش فرض کاملاً امن است ، در بیشتر موارد باعث هک شدن سایت های وردپرسی می شود . اما نکته مهم اینجاست که بحث امنیت در تمام زمینه ها ، یک چیز نسبی است و هیچگاه مطلق نیست . یعنی اینکه شما نمی توانید با انجام دادن یکسری موارد امنیتی بر روی وب سایت خود ، بگویید که سایت من ۱۰۰% امن است .
اما با این وجود همیشه باید حداکثر موارد امنیتی رعایت شود ، تا به سادگی مورد حمله هکرها قرار نگیریم .
در تحقیقی که توسط وب سایت enablesecurity به عمل آمده است ، مشخص شده است که ۷۰% از سایت های معروف دنیا آسیب پذیر هستند .
در این تحقیق دلایل مختلفی برای آسیب پذیر بودن وب سایت های وردپرسی مطرح شده است ، ولی مهمترین دلیل عدم بروزرسانی وردپرس تشخیص داده شده است .
در این مقاله روش های بسیار مفیدی را به شما معرفی می کنیم که تا حد بسیار بسیار بالایی از هک شدن وب سایت وردپرسی شما در توسط هکرهای انسانی یا ربات ، جلوگیری می کنند .
۱- به صورت منظم از سایت خود نسخه پشتیبان (Backup یا Full Backup) بگیرید .
اولین و مسلماً مهمترین مورد در بحث امنیت وب سایت وردپرس تهیه بک آپ یا نسخه پشتیبان می باشد . منظور ما از نسخه پشتیبان ، حالت نسخه پشتیبان کامل یا FULL Backup می باشد که در آن از تمام فایل های موجود در هاست سایت شما به همراه تمام بانک های اطلاعاتی یک کپی یا نسخه پشتیبان به صورت یک فایل فشرده ایجاد می شود .
یکی از مزیت های اصلی داشتن نسخه پشتیبان زمانی است که شما یک افزونه یا پوسته را بروزرسانی می کنید و وب سایت شما مختل می شود .
یا اینکه وب سایت شما مورد حمله موفق هکر انسانی یا رباتی قرار گرفته است . در این موارد تنها با برگرداندن فایل نسخه پشتیبان می توانید وب سایت خود را به حالت سالم آن برگردانید .
شرکت های هاستینگ معتبر معمولاً به صورت روزانه از اطلاعات وب سایت ها به صورت فول بک آپ (full backup) ، نسخه پشتیبان تهیه می کنند و این بحث تا حد زیادی باعث بالارفتن امنیت وب سایت و آرامش خاطر مدیران وب سایت ها خواهد شد . پس در هنگام تهیه هاستینگ برای وب سایت خود ، مورد نسخه پشتیبان روزانه را حتماً در نظر بگیرید .
اگر از نحوه بکاپ گیری هاستینگ خود راضی نیستید و فعلاً نمی توانید سایت خود را به یک هاست دیگر منتقل کنید ، می توانید از سرویس های بکاپ گیری مانند Vaultpress استفاده کنید .
۲- وردپرس خود را بروز نگه دارید
همیشه بعد از انتشار یک نسخه از وردپرس ، هکرها و ربات ها به دنبال پیدا کردن حفره های امنیتی آن و ایجاد یک راه و روش برای نفوذ به هسته وردپرس و اعمال کارهای خرابکارانه خود هستند .
اگر شما به محض منتشر شدن نسخه های جدید وردپرس ، آن را بروزرسانی کنید ، تا حد بسیار بالایی از هک شدن سایت خود جلوگیری خواهید کرد .
البته نکته ای که در اینجا باید به آن اشاره کنیم این است که در برخی مواقع بعد از بروزرسانی وردپرس ، به علت عدم هماهنگی افزونه ها یا پوسته ی فعال سایت با نسخه جدید ، ممکن است اختلالاتی به وجود بیاید ، که شما اگر از مورد اول این مقاله یعنی ایجاد نسخه پشتیبان استفاده کرده باشید ، به راحتی می توانید وب سایت وردپرسی خود را به حالت قبل برگردانید .
۳- بروز نگه داشتن افزونه ها و پوسته ها
هر افزونه و پوسته وردپرس یک خطر جدی برای وب سایت وردپرسی شماست . این مورد به خصوص در مورد افزونه ها و پوسته های محبوب مطرح است .
پس ابتدا به لیست افزونه های خود نگاه کنید و اول افزونه های های غیرکاربردی و یا غیرفعال خود را حذف کنید و سپس نسبت به بروزرسانی سایر افزونه ها اقدام کنید .
همچنین پیشنهاد می شود بجز پوسته فعال و یک پوسته دیگر برای مواقع ضروری سایر پوسته های خود را حذف کنید . چون ممکن است همین پوسته ها یا افزونه های غیرفعال ، راهی را برای نفوذ هکرها را به وب سایت وردپرسی شما را باز کنند .
۴- افزونه ها و پوسته ها را از منابع معتبر دریافت کنید .
زمانی که شما یک افزونه یا پوسته وردپرس را از منابع غیر رسمی دریافت می کنید ، ممکن است کدهایی به آن افزونه یا پوسته اضافه شده باشند که امنیت وب سایت وردپرس شما را تهدید کنند . پس همیشه از منابعی مانند WordPress.org ، Themeforest.net و یا وب سایت توسعه دهنده همان افزونه و یا پوسته ، فایل های خود را دریافت کنید .
متاسفانه در چندین و چند وب سایت فارسی ، پوسته ها و افزونه های تجاری به نام لایسنس دار و اصلی به فروش می رسند ، در حالی که تاکنون هیچ نمایندگی رسمی در ایران برای هیچ افزونه و یا پوسته ای از طرف توسعه دهندگان اصلی آنها اعلام نشده است .
۵- سطح دسترسی فایل ها و پوشه های سایت را صحیح تعیین کنید
بعد از نصب وردپرس حتماً دسترسی های فایل ها و پوشه ها وردپرس را به صورت صحیح تنظیم کنید . از دسترسی های ۷۷۷ یا ۷۵۰ به جای دسترسی ۷۷۷ برای پوشه های عمومی استفاده کنید . برای فایل ها هم از سطح دسترسی ۶۴۰ یا ۶۴۴ و برای فایل wp-config.php از سطح دسترسی ۶۰۰ استفاده کنید .
۶- یک افزونه مخصوص امنیت وردپرس نصب کنید
تعداد افزونه های رایگان و تجاری در زمینه امنیت وردپرس روز به روز در حال گسترش است . این افزونه ها ویژگی هایی مانند حداکثر تعداد ورود ناموفق به سایت ، رمزهای عبور قوی ، تغییر آدرس صفحه ورود وردپرس ، اعتبارسنجی دو مرحله ای (مثلاً وارد کردن رمز و ارسال کد امنیتی از طریق پیامک) و … را به وب سایت وردپرس شما اضافه می کنند .
نکته ای که باید به آن توجه داشته باشید این است که هیچ کدام از این افزونه ها (یا چند افزونه امنیتی) امنیت کامل وب سایت شما را تضمین نمی کنند ، اما وب سایت وردپرسی شما در برابر اکثر حملات معروف هکرها ، ایمن تر می کنند .
۷- سایت وردپرس خود را از بهترین هاستینگی که می توانید ، تهیه کنید
تحقیقات نشان می دهند که دلیل ۴۱% هک شدن سایت های وردپرس ، مربوط به هاست های ضعیف و با ضریب امنیت پایین بوده است .
پس اینکه سایت وردپرس شما بر روی چه هاستی قرار دارد و امنیت آن چگونه است ، یکی از مهمترین موارد در برقراری امنیت وب سایت شماست .
در ایران نیز هاستینگ های خوبی وجود دارند که به علت تعداد بالای آنها نمی توانیم لیست همه آنها را بنویسیم . اما توجه شما را به یک نکته مهم جلب می کنیم و آن اینکه هیچ هاست ارزان و گرانی بدون دلیل ارزان یا گران نیست .
معمولاً هاست های ارزان از سرورهای اجاره ای خارج از کشور استفاده می کنند و خدمات ضعیف تری نسبت به هاستینگ هایی که خودشان دارای سرور هستند و مخصوصاً در ایران هستند را ارائه می دهند .
یک هاستینگ مخصوص وردپرس دارای ویژگی هایی مانند دیواره اتش سازگار با وردپرس ، PHP و MySql بروز و تنظیمات همگام با وردپرس است (البته تاکنون بنده هاستینگ مخصوص وردپرس را در ایران مشاهده نکرده ام ).
۸- نام های کاربری را مخفی کنید
به صورت پیش فرض در زمان نصب وردپرس ، کاربری با شناسه ۱ ایجاد می شود ، که هکرها بوسیله آن و به سادگی می توانند یک حمله را بر روی بانک اطلاعاتی وردپرس ایجاد کنند .
در هاستینگ های مخصوص وردپرس به صورت اتوماتیک این شناسه تغییر داده می شود تا جلوی حمله هکرها گرفته شود ؛ اما چنانچه شما از یک هاست اشتراکی استفاده می کنید می توانید اینکار را به وسیله افزونه و یا کدهای اختصاصی روی بانک اطلاعاتی انجام دهید .
مثلاً با استفاده از کد زیر و قرار دادن آن در فایل 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$ –
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php
# 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 سایت خود نسخه پشتیبان تهیه کنید .
نتیجه گیری