آموزش تامین امنیت وردپرس و جلوگیری از هک وردپرس
موضوع حفظ امنیت وردپرس و تلاش برای بالابردن آن یک مسئله بسیار ضروری است. چون در صورتی که هکرها بتوانند وب سایت شما را هک کنند، نه تنها به دارایی شما که اطلاعات روی سایتتان است دسترسی پیدا خواهند کرد، بلکه به اعتبار و برند شما نیز لطمه وارد خواهند کرد. کافی است افراد بدانند که سایت شما یک بار مورد حمله هکرها واقع شده است، امکان دارد برای خرید کردن یا دریافت سایر انواع خدمات دیگر به شما اعتماد نکنند.
از اونجایی که بحث امنیت یک چیز نسبی هست و نمیشه گفت یک سیستم امنیت کامل داره بنابراین لازمه از تمامی راهکارهای موجود برای افزایش تامین امنیت وردپرس و جلوگیری از هک وردپرس استفاده کنید.
در این مقاله قصد دارم به معرفی راههای تامین امنیت وردپرس بپردازم که با استفاده کردن از این روشها میتونید امنیت سایت خودتون را افزایش داده و از هر گونه نفوذ و هک در سایت تا حد بسیار بالایی جلوگیری کنید.
پس اگر شما هم در امنیت سایتتون دچار مشکل شدید و از سوی برخی افراد مورد حمله قرار میگیرید تا انتهای این مقاله با ما همراه باشید تا با فعال کردن و اضافه کردن روشهای امنیتی که در این مقاله با هم مرور میکنیم امنیت وردپرس را افزایش دهیم.
پیشنهاد ما: ابزار های امنیتی در سی پنل
نحوه تامین امنیت وردپرس و جلوگیری از هک وردپرس
زمانی که یک سایت هک شده و مورد نفوذ قرار میگیره کلیه اطلاعات موجود در سایت مورد سرقت قرار خواهد گرفت. در بدترین شرایط برخی افراد بعد از نفوذ بدون اینکه چیزی متوجه بشید با قرار دادن کدهای مخرب در بخشهای مختلف سایت کاری میکنند که اطلاعات سایت شما را به صورت دائمی استخراج کنند. در ظاهر همه چیز در سایت شما به درستی کار میکنه و مشکلی نمیبینید اما اطلاعات مهم سایت شما و کاربرانی که در سایتتون هستند مدام در حال درز کردن به جایی هست.
پس از همین ابتدا که شروع به نصب وردپرس میکنید لازمه کلیه روشهای افزایش امنیت وردپرس را به کار ببندید و از هک سایت و نفوذ در وردپرس جلوگیری کنید. از طرفی هم تامین امنیت یک سایت صرفا محدود به سیستم مدیریت محتوا نبوده و به هاست و سرور شما هم بر میگرده که باید در سطح بالایی از نظر امنیتی قرار داشته باشد. بنابراین در قدم اول سعی کنید از هاستی استفاده کنید که امنیت بالایی داشته باشد. در مقالات بعدی به نحوه افزایش امنیت در هاست هم خواهم پرداخت.
۱. بهروز رسانی مداوم وردپرس
مهم ترین مسئله در تامین امنیت سایتهای وردپرسی به روز بودن ورپرس و افزونهها و قالبهایی هست که ازشون استفاده میکنید. تیم وردپرس مدام در حال افزودن قابلیتهای جدید و رفع مشکلات و باگهای امنیتی این سیستم مدیریت محتوا است. پس وقتی وردپرس آپدیت میشود باید در اولین فرصت اقدام به آپدیت وردپرس بکنید. برای افزونهها و قالبهای استفاده شده هم باید به همین ترتیب عمل کرده و آنها را آپدیت کنید.
۲. بکآپ گیری منظم وردپرس
بعد از هک شدن یک سایت وردپرسی معمولا کدهای مخرب در سایت قربانی تزریق میشه که در اکثر مواقع شاید متوجه این مسئله نشوید. از سوی دیگه نمیشه به بک آپ گیری که میزبان شما تهیه میکنه زیاد مطمئن بود. چرا که برای چندین میزبانی این مشکل پیش اومده که به دلیل گرفتن هاردهای سرور توسط پلیس آلمان بسیاری از سایتها به صورت کامل از صفحه اینترنت محو شدند و برای مشتریان هم هیچ توضیحی قابل هضم نبوده و کلی زحمت که برای رشد یک سایت داشتند به خاطر سهل انگاری در بک آپ گرفتن توسط مدیران سایتها به باد رفت.
پس سعی کنید همیشه خودتون هم از سایت نسخه بک آپ تهیه کنید تا اگر مشکلات این چنین رخ داد یا سایت هک شد بتونید از فایل بکآپ برای اطمینان از سالم بودن کلیه فایلها موجود در سایت به ادامه فعالیت بپردازید. بک آپ گیری از سایت همواره بهترین انتخاب برای رفع مشکلات ناخوشایند در سایت است. که میتونید با استفاده از مقاله آموزش تهیه نسخه پشتیبان از پایگاه داده وردپرس با نحوه بک آپ گیری از دیتابیس وردپرس و فایلهای آن آشنا شوید.
۳. افزایش امنیت فایل wp-config.php
فایل wp-config.php یکی از مهمترین فایلهای هر سایت وردپرسی است که اطلاعات دیتابیس در این فایل قرار دارد. بنابراین در حفظ اطلاعات این فایل باید دقت کافی را داشته باشید و با استفاده از هر ترفندی که میدونید دسترسی به این فایل را محدود کنید تا کسی جز خود شما قادر به مشاهده این فایل نباشد. در مقاله آموزش مدیریت فایل کانفیگ وردپرس به تعدادی از راهکارهای که هم میتونید از خود این فایل محافظت کنید و هم اینکه سایر کارهای امنیتی را روی وردپرس پیاده سازی کنید پرداختم که پیشنهاد میکنم از این موارد استفاده کنید.
۴. افزایش امنیت فایل htaccess.
یکی دیگه از فایلهای مهم در وردپرس htaccess. هست که با استفاده از اون میشه کارهای مختلفی را روی هر سایت اعمال کرد. این فایل با استفاده از دستوراتی که میتونه اجرا کنه در محافظت از فایلها و پوشههای وردپرس نقش بهسزایی را داره که میتونید با استفاده کردن از دستورات فایل htaccess. امنیت سایت را افزایش دهید.
برای افزایش امنیت در وردپرس با htaccess. هم میتونید از دستوراتی که در مقاله آموزش کار با htaccess. در وردپرس به اونها پرداختم استفاده کنید.
۵. افزایش امنیت پوشه wp-admin
پوشه wp-admin هم یکی از مهمترین پوشههای وردپرس هست که همونطور که از اسم این پوشه مشخصه کارهای مربوط به مدیریت پیشخوان وردپرس را به عهده داره که با دسترسی به این پوشه میشه به راحتی با تزریق کدهایی در فایلهای موجود در این پوشه به صورت کلی پیشخوان وردپرس را به هم ریخت. برای افزایش امنیت این پوشه میتونید از کارهایی مثل رمزگذاری روی پوشه wp-admin در هاست سی پنل استفاده کنید.
۶. استفاده از رمز عبور قوی و سطح دسترسی
سادهترین راه و شایعترین روش برای هک و نفوذ در سایتهای وردپرسی به دلیل استفاده از رمز عبور سست به وجود میاد. موضوع استفاده نکردن از رمز قوی صرفا محدود به وردپرس نیست و اگر پیگیر اخبار فناوری بوده باشید، هر ساله گزارشات بسیار زیادی مبنی بر هک ایمیل کاربران منتشر میشه که در اون از رمزهای سست و معمولی استفاده کرده بودند.
انتخاب سطح دسترسی درست برای کاربران هم یکی دیگه از نکاتی هست که باید بهش توجه داشته باشید. معمولا در سایتهای زیادی که به صورت تیمی عمل میکنند بیشتر اعضای تیم دارای نقش کاربری مدیرکل هستند که همین مسئله باعث میشه امنیت وردپرس در خطر قرار بگیره. باید این نکته را به خاطر داشته باشید که هیچ لزومی نداره شما که تیم تشکیل دادید حتما باید همه اعضا دارای نقش کاربری مدیر کل باشند، چرا که لو رفتن رمز یکی از کاربران باعث میشه تا کل سایت هک بشه. کافیه یکی از اعضا که مسئولیت کدنویسی و طراحی بخش سایت را داره این نقش کاربری را داشته باشه و بقیه اعضای تیم از نقشهایی مثل نویسنده و ویرایشگر استفاده کنند.
پیشنهاد ما: ارتقای امنیت سایت
۷. افزایش امنیت صفحه ورود به وردپرس
صفحه ورود در وردپرس یکی از صفحات مهمی هست که نگهداری از اون هم برای جلوگیری از هک سایت و هم برای جلوگیری از حملات DDOS بسیار مهم و کلیدی هست. بنابراین با به وجود اومدن روشهای امنیتی مثل قرار دادن سوال امنیتی، استفاده از ورود دو مرحلهای گوگل و… این روشها هم به وردپرس راه باز کردند که استفاده کردن ازشون میتونه حسابی سایت را ایمن بکنه و در ادامه به معرفی برخی از این روشها میپردازم.
تغییر آدرس صفحه ورود به وردپرس
وردپرس به صورت پیشفرض از آدرس wp-login.php برای صفحه ورود استفاده میکنه که با مراجعه کردن به آدرس wp-admin هم به صورت خودکار به این صفحه هدایت خواهید شد. بنابراین اگر شخصی نام کاربری و رمز شما را بدونه به راحتی میتونه وارد پیشخوان وردپرس شده و کارهایی را در اون انجام بده. برای همین میتونید این آدرس و آدرس wp-admin را تغییر داده و از آدرس دلخواه استفاده کنید که در مقاله آموزش تغییر آدرس ورود به پیشخوان یا مدیریت وردپرس و آموزش تغییر آدرس ورود به مدیریت وردپرس به معرفی افزونهای برای این کار پرداختم.
محدودیت در تعداد دفعات ورود به وردپرس
وردپرس به صورت پیشفرض هیچ محدودیتی برای تعداد دفعات تلاش برای ورود در سایت قرار نداده. اما راهکاری وجود داره که میتونید تعداد دفعات را در ورود به وردپرس محدود کنید به طوری که اگر بیش از تعداد دفعات مشخص شده شخصی در صدد ورود به سایت بود برای مدت مشخص شدهای دیگه حتی با رمز و نام کاربری درست هم قادر به ورود در وردپرس نباشند. که در مقاله آموزش محدود کردن تعداد دفعات ورود در وردپرس به این موضوع پرداختم.
محدودیت در ورود با ایمیل در وردپرس
از نسخه ۳ به بعد وردپرس قابلیتی به این سیستم مدیریت محتوا اضافه شد که علاوه بر نام کاربری بتونید با ایمیلی که دارید هم در وردپرس وارد شوید. بنابراین از اونجایی که با ایمیل استفاده شده با بسیاری از افراد در ارتباط هستید پس امکان نفوذ در سایت به ندونستن نام کاربری فراهم خواهد بود. برای غیرفعال کردن این قابلیت وارد هاست خودتون شده و سپس به مسیر /public_html/wp-content/themes/ مراجعه کنید. حالا وارد پوشه قالبی که ازش استفاده میکنید شده و قطعه کد زیر را در فایل فانکشن(functions.php) قالب قرار داده و ذخیره کنید.
remove_filter( 'authenticate', 'wp_authenticate_email_password', 20 );
بعد از قرار دادن کد بالا دیگه امکان ورود با ایمیل در وردپرس را نخواهید داشت و فقط با استفاده از نام کاربری میتونید وارد وردپرس شوید.
استفاده از کپچا وردپرس
یکی از راههای حمله به وردپرس با استفاده از تلاش برای ورود در سایت یا ارسال دیدگاه اسپم صورت میگیره که حتما هم لزومی نداره فرد وارد سایت بشه و بلکه هدف از این کار اینکه که مدام درخواستی به سایت شما ارسال شده و CPU و منابع هاست شما درگیر میشه و در نهایت سایت از دسترس خارج خواهد شد. برای جلوگیری از این کار میتونید از کپچا وردپرس استفاده کنید. استفاده از کپچا میتونه از نظرات اسپم هم جلوگیری بکنه که با استفاده از مقاله آموزش ساخت کپچا در وردپرس میتونید این امکان را در وردپرس فراهم کنید.
ورود دو مرحلهای گوگل در وردپرس
تقریبا دو سالی هست که گوگل برنامه Google Authenticator را برای فراهم کردن قابلیت ورود دو مرحلهای فراهم کرده است. در این پروژه دیگه نیازی نیست که حتما کد تایید برای ورود به اکانت را از طریق SMS روی شماره دریافت کنید، بلکه میتونید برنامه مخصوص اندروید و IOS را روی گوشی خودتون نصب کرده و کدهایی که به صورت خودکار در این برنامه تولید میشه را برای کد ورود استفاده کنید. این سیستم محدود به محصولات گوگل نیست و با استفاده از این قابلیت میتونید امکان ورود دو مرحلهای گوگل در وردپرس را هم فراهم کنید.
افزودن سوال امنیتی در صفحه ورود وردپرس
یکی دیگه از راههای افزایش امنیت در وردپرس استفاده از قابلیت سوال و جواب امنیتی است. در این روش هر کاربر میتونه با مراجعه به صفحه شناسنامه یکی از سوالات امنیتی را انتخاب کرده و با تعیین جواب وقتی اقدام به ورود در سایت میکنه تا زمانی که جواب تعیین شده را وارد نکرده قادر به ورود در وردپرس نخواهد بود. برای استفاده از این قابلیت هم میتونید از مقاله آموزش افزودن پرسش و پاسخ امنیتی در وردپرس استفاده کنید.
غیرفعال کردن پیغام خطاهای وردپرس
وقتی نام کاربری یا رمز عبور اشتباهی در صفحه ورود وردپرس وارد کنید پیام “نام کاربری xxx اشتباه است و یا شناسه معتبر نیست” نمایش داده میشود. هکر با توجه به پیام نمایش داده شده تشخیص میده که کدوم یکی از اطلاعات ورود اشتباه هستند و در نهایت بعد از یافتن یکی از اطلاعات درست میتونه روی مورد بعدی تمرکز کرده و در زمان کوتاهتری اقدام به هک سایت بکند.
// Remove error message on login screen add_filter('login_errors', create_function('$a', 'return null;'));
برای غیرفعال کردن این قابلیت کد بالا را در فایل فانکشن(functions.php) قالب خودتون قرار داده و ذخیره کنید.
پیشنهاد ما: افزونه های امنیتی
۸. مخفی کردن نام کاربری وردپرس
در اکثر قالبهای وردپرس وقتی روی نام نویسنده یک نوشته کلیک کنید به صفحه نویسنده هدایت خواهید شد که در اون نام کاربری نویسنده درست همان چیزی است که در آدرس نمایش داده میشود. بنابراین اگر میبینید که نیازی به این قابلیت ندارید میتونید چنین امکانی را از قالب خودتون غیرفعال کنید یا اینکه با استفاده از روشهای موجود آدرس صفحه نویسنده را بر اساس آیدی نویسنده تعیین کنید که نام کاربری نویسندهها مشخص نشه که در مقالات بعدی به معرفی این راهکار خواهم پرداخت.
# BEGIN block author scans RewriteEngine On RewriteBase / RewriteCond %{QUERY_STRING} (author=\d+) [NC] RewriteRule .* - [F] # END block author scans
با قرار دادن کد بالا در فایل htaccess. هاست خودتون میتونید صفحات مربوط به نویسندهها را در وردپرس به صفحه اصلی ریدایرکت کنید.
۹. تغییر پیشوند جداول وردپرس
در حالت پیشفرض، وردپرس از _wp بهعنوان پیشوند جداول در پایگاه داده وردپرس استفاده میکنه. حالا در صورتی که هنگام نصب وردپرس اقدام به تغییر دادن آن نکرده باشید امنیت سایت شما از بخش دیتابیس کاهش پیدا خواهد کرد که لازمه اقدام به تغییر پیشوند جداول بکنید. برای این منظور میتونید از مقالههای آموزش تغییر پیشوند جداول وردپرس و آموزش تغییر پیشوند جداول وردپرس استفاده کنید.
۱۰. استفاده از SSL در تامین امنیت وردپرس و جلوگیری از هک وردپرس
استفاده از پروتکل امن HTTPS این امکان را به سایت شما میده که کلیه دادهها در محیطی امن رد و بدل شوند. بنابراین با استفاده از SSL در وردپرس میتونید امنیت سایت را در حالتهای مختلفی افزایش دهید. پیشنهاد میکنم حتما از SSL استفاده کرده و امنیت وردپرس را بیشتر کنید.
۱۱. غیرفعال کردن مشاهده پوشههای هاست
یکی از نکاتی که کاربران کمتر بهش توجه میکنند و بر اساس کانفیگ هاست ممکنه این قابلیت در هاست غیرفعال نشده باشه مرور پوشه ها در سایت است. Directory browsing میتونه توسط هکرها مورد استفاده قرار گرفته و فایلهای موجود در هر پوشه به راحتی بررسی شده و با پیدا کردن راههای نفوذ به راحتی سایت شما هک شود. این مورد به هینجا محدود نمیشه و افراد میتونند با پیدا کردن پوشههای شما فایلهای موجود در هاست را هم مورد سرقت قرار دهند. بنابراین لازمه این قابلیت را غیرفعال کنید. برای این منظور کارهای زیر را طی کنید.
- وارد هاست خود شده و به مسیر public_html مراجعه کنید.
- در نهایت فایل را ذخیره کنید.
۱۲. غیرفعال کردن ویرایشگر قالب و افزونه
یکی از قابلیتهای وردپرس استفاده از ویرایشگر کد در پیشخوان وردپرس هست که در منوهای نمایش و افزونهها قرار داره و با استفاده از این دو منو به ترتیب میتونید به کلیه فایلهای قالب وردپرس و افزونه وردپرس دسترسی داشته و آنها را ویرایش کنید. اگر شخصی بتونه وارد پیشخوان وردپرس بشه به راحتی میتونه با وارد کردن کدهای مخرب کارهای خراب کارانه در سایتتون ایجاد بکنه که برای غیرفعال کردن این قابلیت میتونید به ترتیب زیر عمل کنید.
- وارد هاست خود شده و به مسیر public_html مراجعه کنید.
- فایل wp-config.php را که در ریشه هاست قرار دارد را انتخاب کرده و به صفحه ویرایش فایل مراجعه کنید.
- حالا قطعه کد زیر را در بخش define این فایل قرار داده و ذخیره کنید.
// Disallow file edit define( 'DISALLOW_FILE_EDIT', true );
بعد از قرار دادن کد بالا امکان ویرایش فایلهای قالب و افزونه از طریق ویرایشگر پیشخوان وردپرس غیرفعال خواهد شد.
۱۳. غیرفعال کردن اجرای فایل PHP در وردپرس
هاست به شما این اجازه میده تا هر فایلی را در هر جایی قرار داده و با دستورات PHP هر کاری که میخواهید در سایت انجام دهید. برخی دایرکتوریها هستند که اصلا نیازی به اجرای فایلهای PHP در اونها نخواهید داشت که مهمترین این بخش پوشه uploads وردپرس هست که فایلهای چند رسانهای مثل تصویر، ویدئو، صوت و… در این مسیر قرار میگیرد. بنابراین لازمه اجرای دستورات PHP را در این مسیر با استفاده از روش زیر غیرفعال کنید.
- وارد هاست خود شده و به مسیر public_html/wp-content/uploads مراجعه کنید.
- یک فایل با نام htaccess. بسازید و کدهای زیر را در آن قرار دهید.
<Files *.php> deny from all </Files>
بعد از قرار دادن کد بالا در فایل htaccess. که در این پوشه قرار داره به صورت کلی امکان اجرای PHP در این مسیر غیرفعال خواهد شد.
۱۴. غیرفعال کردن XML-RPC
فایل XML-RPC وردپرس امکان مدیریت از راه دور را در وردپرس خواهد داد که از جمله این موارد میشه به امکان استفاده از برنامه اندروید، برنامه ویندوز وردپرس یا سرویسهایی مثل IFTTT اشاره کرد. با استفاده از تابع system.multicall هکر میتونه همزمان ۲۰ درخواست را به سایت ارسال کرده و اقدام به پیدا کردن رمز ورود در وردپرس بکنه که علاوه بر این امکان حملات DDOS هم از این طریق فراهم هست. پس بهتره با استفاده از مقاله آموزش غیرفعال کردن XML-rpc اقدام به غیرفعال کردن این قابلیت در وردپرس بکنید.
۱۵. بررسی فعالیت کاربران در وردپرس
یکی دیگه از راههای امنیت وردپرس این هست که رفتار کاربران سایت خودتون را زیر نظر بگیرید. این رفتار میتونه توسط سیستم آمار گیر سایت و یا افزونهها صورت بگیره که در صورت شناسایی و مشکوک شدن به کاربری کافیه اکانت وی را غیرفعال کرده و یا نقش کاربری وی را برای جلوگیری از کارهای خرابکارانه محدود کنید. برای این منظور هم میتونید از مقاله آموزش مدیریت و کنترل فعالیت کاربران در وردپرس استفاده کنید.
پیشنهاد ما: امنیت در وردپرس
تغییر دورهای رمز کلیه کاربران در وردپرس
معمولا کاربرانی که در سایت ثبت نام میکنند هیچ اقدامی برای تغییر دورهای رمز عبور خودشون انجام نمیدهند. این مشکلات برای هر سایتی زیاد شاید مهم نباشه و به چشم نیاد، اما برای سایتهای فروشگاه فایل که از ووکامرس یا افزونههای دیگه استفاده میکنند خیلی مهم هست. پس خودتون باید دست به کار شده و در بازههای زمانی چند ماهه کاری کنید که کاربران خودشون اقدام به تغییر رمز در وردپرس بکنند.
۱۶. استفاده از افزونه تامین امنیت وردپرس و جلوگیری از هک وردپرس
افزونههای امنیتی مختلفی برای وردپرس ساخته شدهاند که امکان فراهم کردن قابلیتهای امنیتی را در وردپرس به شما خواهند داد. یکی دیگه از افزونههای امنیتی در وردپرس افزونه امنیت وردپرس iThemes Security هست که امکاناتی مثل بک آپ گیری خودکار از دیتابیس وردپرس را به شما میده که هر زمان سایت مورد حمله قرار گرفته بود بتونید با استفاده از نسخه پشتیبان وردپرس مشکلات را برطرف کنید.