یکی از دغدغههای مهم مدیران وردپرسی تامین امنیت وردپرس هست که نمیشه به سادگی از کنار این موضوع عبور کرد. وردپرس به دلیل محبوبیتی که در بین سیستمهای سایت ساز داره همواره در معرض هک و نفوذ قرار داره که استفاده از وردپرس در بسیاری از سایتها هم باعث بیشتر و بیشتر شدن موضوع هک سایت وردپرسی شده است. از اونجایی که بحث امنیت یک چیز نسبی هست و نمیشه گفت یک سیستم امنیت کامل داره بنابراین لازمه از تمامی راهکارهای موجود برای افزایش امنیت در وردپرس استفاده کنید.
در این مقاله از پایگاه دانش میزبانفا قصد دارم به معرفی راههای تامین امنیت وردپرس بپردازم که با استفاده کردن از این روشها میتونید امنیت سایت خودتون را افزایش داده و از هر گونه نفوذ و هک در سایت تا حد بسیار بالایی جلوگیری کنید. پس اگر شما هم در امنیت سایتتون دچار مشکل شدید و از سوی برخی افراد مورد حمله قرار میگیرید تا انتهای این مقاله با ما همراه باشید تا با فعال کردن و اضافه کردن روشهای امنیتی که در این مقاله با هم مرور میکنیم امنیت وردپرس را افزایش دهیم.
زمانی که یک سایت هک شده و مورد نفوذ قرار میگیره کلیه اطلاعات موجود در سایت مورد سرقت قرار خواهد گرفت. در بدترین شرایط برخی افراد بعد از نفوذ بدون اینکه چیزی متوجه بشید با قرار دادن کدهای مخرب در بخشهای مختلف سایت کاری میکنند که اطلاعات سایت شما را به صورت دائمی استخراج کنند. در ظاهر همه چیز در سایت شما به درستی کار میکنه و مشکلی نمیبینید اما اطلاعات مهم سایت شما و کاربرانی که در سایتتون هستند مدام در حال درز کردن به جایی هست.
پس از همین ابتدا که شروع به نصب وردپرس میکنید لازمه کلیه روشهای افزایش امنیت وردپرس را به کار ببندید و از هک سایت و نفوذ در وردپرس جلوگیری کنید. از طرفی هم تامین امنیت یک سایت صرفا محدود به سیستم مدیریت محتوا نبوده و به هاست و سرور شما هم بر میگرده که باید در سطح بالایی از نظر امنیتی قرار داشته باشد. بنابراین در قدم اول سعی کنید از هاستی استفاده کنید که امنیت بالایی داشته باشد. در مقالات بعدی به نحوه افزایش امنیت در هاست هم خواهم پرداخت.
تهیه نسخه پشتیبان به صورت فول بکآپ از هاست مهمترین مسئلهای هست که در تامین امنیت وردپرس باید به اون توجه کنید. با استفاده از نسخه پشتیبان وردپرس که به صورت کامل تهیه شده باشه هرگاه مشکلی از نظر امنیتی برای سایت پیش اومد میتونید به راحتی با بازگردانی نسخه پشتیبان در کوتاهترین زمان ممکن مشکل خودتون را برطرف کنید. بنابراین سعی کنید همیشه تا میتونید در بازههای زمانی کوتاه که حداقل هر دو روز یک بار باشه از هاست سی پنل یا دایرکت ادمین خودتون یک فول بک آپ تهیه کنید. برای این منظور میتونید از آموزش نحوه تهیه فول بکآپ از هاست سی پنل استفاده کنید که در مقالات بعدی هم به آموزش تهیه نسخه بک آپ در هاست دایرکت ادمین خواهیم پرداخت.
مهم ترین مسئله در تامین امنیت سایتهای وردپرسی به روز بودن ورپرس و افزونهها و قالبهایی هست که ازشون استفاده میکنید. تیم وردپرس مدام در حال افزودن قابلیتهای جدید و رفع مشکلات و باگهای امنیتی این سیستم مدیریت محتوا است. پس وقتی وردپرس آپدیت میشود باید در اولین فرصت اقدام به آپدیت وردپرس بکنید. برای افزونهها و قالبهای استفاده شده هم باید به همین ترتیب عمل کرده و آنها را آپدیت کنید.
موضوع دیگه در به روز بودن وردپرس استفاده از افزونه و قالب وردپرس از منابع رسمی و مطمئن هست. متاسفانه به دلیل مشکلات تحریم و بالا بودن نرخ ارز برای خرید محصولات اورجینال بسیاری از سایتهای فروش قالب و افزونه وردپرس هستند که محصولات منتشر شده را بدون خرید از منابع و با دانلود از سایتهایی که مشخص نیست با چه هدفی این فایلها را برای دانلود قرار دادهاند باعث نفوذ و هک سایت میشوند. بیشترین عاملی که مربوط به هک وردپرس میشه به دلیل همین مسئله رخ میده، پس سعی کنید تا جای ممکن حتما قالب و افزونهای که استفاده میکنید را از منبع اصلی خریداری کنید.
بعد از هک شدن یک سایت وردپرسی معمولا کدهای مخرب در سایت قربانی تزریق میشه که در اکثر مواقع شاید متوجه این مسئله نشوید. از سوی دیگه نمیشه به بک آپ گیری که میزبان شما تهیه میکنه زیاد مطمئن بود. چرا که برای چندین میزبانی این مشکل پیش اومده که به دلیل گرفتن هاردهای سرور توسط پلیس آلمان بسیاری از سایتها به صورت کامل از صفحه اینترنت محو شدند و برای مشتریان هم هیچ توضیحی قابل هضم نبوده و کلی زحمت که برای رشد یک سایت داشتند به خاطر سهل انگاری در بک آپ گرفتن توسط مدیران سایتها به باد رفت.
پس سعی کنید همیشه خودتون هم از سایت نسخه بک آپ تهیه کنید تا اگر مشکلات این چنین رخ داد یا سایت هک شد بتونید از فایل بکآپ برای اطمینان از سالم بودن کلیه فایلها موجود در سایت به ادامه فعالیت بپردازید. بک آپ گیری از سایت همواره بهترین انتخاب برای رفع مشکلات ناخوشایند در سایت است. که میتونید با استفاده از مقاله آموزش تهیه نسخه پشتیبان از پایگاه داده وردپرس با نحوه بک آپ گیری از دیتابیس وردپرس و فایلهای آن آشنا شوید.
فایل wp-config.php یکی از مهمترین فایلهای هر سایت وردپرسی است که اطلاعات دیتابیس در این فایل قرار دارد. بنابراین در حفظ اطلاعات این فایل باید دقت کافی را داشته باشید و با استفاده از هر ترفندی که میدونید دسترسی به این فایل را محدود کنید تا کسی جز خود شما قادر به مشاهده این فایل نباشد. در مقاله آموزش مدیریت فایل کانفیگ وردپرس به تعدادی از راهکارهای که هم میتونید از خود این فایل محافظت کنید و هم اینکه سایر کارهای امنیتی را روی وردپرس پیاده سازی کنید پرداختم که پیشنهاد میکنم از این موارد استفاده کنید.
یکی دیگه از فایلهای مهم در وردپرس htaccess. هست که با استفاده از اون میشه کارهای مختلفی را روی هر سایت اعمال کرد. این فایل با استفاده از دستوراتی که میتونه اجرا کنه در محافظت از فایلها و پوشههای وردپرس نقش بهسزایی را داره که میتونید با استفاده کردن از دستورات فایل htaccess. امنیت سایت را افزایش دهید.
برای افزایش امنیت در وردپرس با htaccess. هم میتونید از دستوراتی که در مقاله آموزش کار با htaccess. در وردپرس به اونها پرداختم استفاده کنید.
پوشه wp-admin هم یکی از مهمترین پوشههای وردپرس هست که همونطور که از اسم این پوشه مشخصه کارهای مربوط به مدیریت پیشخوان وردپرس را به عهده داره که با دسترسی به این پوشه میشه به راحتی با تزریق کدهایی در فایلهای موجود در این پوشه به صورت کلی پیشخوان وردپرس را به هم ریخت. برای افزایش امنیت این پوشه میتونید از کارهایی مثل رمزگذاری روی پوشه wp-admin در هاست سی پنل استفاده کنید.
سادهترین راه و شایعترین روش برای هک و نفوذ در سایتهای وردپرسی به دلیل استفاده از رمز عبور سست به وجود میاد. موضوع استفاده نکردن از رمز قوی صرفا محدود به وردپرس نیست و اگر پیگیر اخبار فناوری بوده باشید، هر ساله گزارشات بسیار زیادی مبنی بر هک ایمیل کاربران منتشر میشه که در اون از رمزهای سست و معمولی استفاده کرده بودند.
استفاده از رمز عبور صرفا محدود به رمز استفاده شده در وردپرس نیست. بلکه باید برای هر بخش از سایت خودتون مثل ورود به هاست، اکانت FTP، دیتابیس سایت و… هم از رمز قوی استفاده کنید.
انتخاب سطح دسترسی درست برای کاربران هم یکی دیگه از نکاتی هست که باید بهش توجه داشته باشید. معمولا در سایتهای زیادی که به صورت تیمی عمل میکنند بیشتر اعضای تیم دارای نقش کاربری مدیرکل هستند که همین مسئله باعث میشه امنیت وردپرس در خطر قرار بگیره. باید این نکته را به خاطر داشته باشید که هیچ لزومی نداره شما که تیم تشکیل دادید حتما باید همه اعضا دارای نقش کاربری مدیر کل باشند، چرا که لو رفتن رمز یکی از کاربران باعث میشه تا کل سایت هک بشه. کافیه یکی از اعضا که مسئولیت کدنویسی و طراحی بخش سایت را داره این نقش کاربری را داشته باشه و بقیه اعضای تیم از نقشهایی مثل نویسنده و ویرایشگر استفاده کنند.
صفحه ورود در وردپرس یکی از صفحات مهمی هست که نگهداری از اون هم برای جلوگیری از هک سایت و هم برای جلوگیری از حملات DDOS بسیار مهم و کلیدی هست. بنابراین با به وجود اومدن روشهای امنیتی مثل قرار دادن سوال امنیتی، استفاده از ورود دو مرحلهای گوگل و… این روشها هم به وردپرس راه باز کردند که استفاده کردن ازشون میتونه حسابی سایت را ایمن بکنه و در ادامه به معرفی برخی از این روشها میپردازم.
وردپرس به صورت پیشفرض از آدرس wp-login.php برای صفحه ورود استفاده میکنه که با مراجعه کردن به آدرس wp-admin هم به صورت خودکار به این صفحه هدایت خواهید شد. بنابراین اگر شخصی نام کاربری و رمز شما را بدونه به راحتی میتونه وارد پیشخوان وردپرس شده و کارهایی را در اون انجام بده. برای همین میتونید این آدرس و آدرس wp-admin را تغییر داده و از آدرس دلخواه استفاده کنید که در مقاله آموزش تغییر آدرس ورود به پیشخوان یا مدیریت وردپرس و آموزش تغییر آدرس ورود به مدیریت وردپرس به معرفی افزونهای برای این کار پرداختم.
وردپرس به صورت پیشفرض هیچ محدودیتی برای تعداد دفعات تلاش برای ورود در سایت قرار نداده. اما راهکاری وجود داره که میتونید تعداد دفعات را در ورود به وردپرس محدود کنید به طوری که اگر بیش از تعداد دفعات مشخص شده شخصی در صدد ورود به سایت بود برای مدت مشخص شدهای دیگه حتی با رمز و نام کاربری درست هم قادر به ورود در وردپرس نباشند. که در مقاله آموزش محدود کردن تعداد دفعات ورود در وردپرس به این موضوع پرداختم.
از نسخه 3 به بعد وردپرس قابلیتی به این سیستم مدیریت محتوا اضافه شد که علاوه بر نام کاربری بتونید با ایمیلی که دارید هم در وردپرس وارد شوید. بنابراین از اونجایی که با ایمیل استفاده شده با بسیاری از افراد در ارتباط هستید پس امکان نفوذ در سایت به ندونستن نام کاربری فراهم خواهد بود. برای غیرفعال کردن این قابلیت وارد هاست خودتون شده و سپس به مسیر /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 بهعنوان پیشوند جداول در پایگاه داده وردپرس استفاده میکنه. حالا در صورتی که هنگام نصب وردپرس اقدام به تغییر دادن آن نکرده باشید امنیت سایت شما از بخش دیتابیس کاهش پیدا خواهد کرد که لازمه اقدام به تغییر پیشوند جداول بکنید. برای این منظور میتونید از مقالههای آموزش تغییر پیشوند جداول وردپرس و آموزش تغییر پیشوند جداول وردپرس استفاده کنید.
استفاده از پروتکل امن HTTPS این امکان را به سایت شما میده که کلیه دادهها در محیطی امن رد و بدل شوند. بنابراین با استفاده از SSL در وردپرس میتونید امنیت سایت را در حالتهای مختلفی افزایش دهید. پیشنهاد میکنم حتما از SSL استفاده کرده و امنیت وردپرس را بیشتر کنید.
یکی از نکاتی که کاربران کمتر بهش توجه میکنند و بر اساس کانفیگ هاست ممکنه این قابلیت در هاست غیرفعال نشده باشه مرور پوشه ها در سایت است. Directory browsing میتونه توسط هکرها مورد استفاده قرار گرفته و فایلهای موجود در هر پوشه به راحتی بررسی شده و با پیدا کردن راههای نفوذ به راحتی سایت شما هک شود. این مورد به هینجا محدود نمیشه و افراد میتونند با پیدا کردن پوشههای شما فایلهای موجود در هاست را هم مورد سرقت قرار دهند. بنابراین لازمه این قابلیت را غیرفعال کنید. برای این منظور کارهای زیر را طی کنید.
در صورتی که از وردپرس برای ساخت فروشگاه اینترنتی استفاده میکنید باید بدانید که فروشگاه ساز ووکامرس این کار را به صورت خودکار انجام میدهد و علاوه بر این به گونهای عمل میکند که حتی اگر لینک مستقیم فایل آپلود شده برای یک محصول را در اختیار کاربری قرار دهید تا زمانی که وارد هاست نشده باشند قادر به دانلود فایل نخواهند بود.
یکی از قابلیتهای وردپرس استفاده از ویرایشگر کد در پیشخوان وردپرس هست که در منوهای نمایش و افزونهها قرار داره و با استفاده از این دو منو به ترتیب میتونید به کلیه فایلهای قالب وردپرس و افزونه وردپرس دسترسی داشته و آنها را ویرایش کنید. اگر شخصی بتونه وارد پیشخوان وردپرس بشه به راحتی میتونه با وارد کردن کدهای مخرب کارهای خراب کارانه در سایتتون ایجاد بکنه که برای غیرفعال کردن این قابلیت میتونید به ترتیب زیر عمل کنید.
// Disallow file edit
define( 'DISALLOW_FILE_EDIT', true );
بعد از قرار دادن کد بالا امکان ویرایش فایلهای قالب و افزونه از طریق ویرایشگر پیشخوان وردپرس غیرفعال خواهد شد.
هاست به شما این اجازه میده تا هر فایلی را در هر جایی قرار داده و با دستورات PHP هر کاری که میخواهید در سایت انجام دهید. برخی دایرکتوریها هستند که اصلا نیازی به اجرای فایلهای PHP در اونها نخواهید داشت که مهمترین این بخش پوشه uploads وردپرس هست که فایلهای چند رسانهای مثل تصویر، ویدئو، صوت و… در این مسیر قرار میگیرد. بنابراین لازمه اجرای دستورات PHP را در این مسیر با استفاده از روش زیر غیرفعال کنید.
<Files *.php>
deny from all
</Files>
بعد از قرار دادن کد بالا در فایل htaccess. که در این پوشه قرار داره به صورت کلی امکان اجرای PHP در این مسیر غیرفعال خواهد شد.
فایل XML-RPC وردپرس امکان مدیریت از راه دور را در وردپرس خواهد داد که از جمله این موارد میشه به امکان استفاده از برنامه اندروید، برنامه ویندوز وردپرس یا سرویسهایی مثل IFTTT اشاره کرد. با استفاده از تابع system.multicall هکر میتونه همزمان 20 درخواست را به سایت ارسال کرده و اقدام به پیدا کردن رمز ورود در وردپرس بکنه که علاوه بر این امکان حملات DDOS هم از این طریق فراهم هست. پس بهتره با استفاده از مقاله آموزش غیرفعال کردن XML-rpc اقدام به غیرفعال کردن این قابلیت در وردپرس بکنید.
یکی دیگه از راههای امنیت وردپرس این هست که رفتار کاربران سایت خودتون را زیر نظر بگیرید. این رفتار میتونه توسط سیستم آمار گیر سایت و یا افزونهها صورت بگیره که در صورت شناسایی و مشکوک شدن به کاربری کافیه اکانت وی را غیرفعال کرده و یا نقش کاربری وی را برای جلوگیری از کارهای خرابکارانه محدود کنید. برای این منظور هم میتونید از مقاله آموزش مدیریت و کنترل فعالیت کاربران در وردپرس استفاده کنید.
معمولا کاربرانی که در سایت ثبت نام میکنند هیچ اقدامی برای تغییر دورهای رمز عبور خودشون انجام نمیدهند. این مشکلات برای هر سایتی زیاد شاید مهم نباشه و به چشم نیاد، اما برای سایتهای فروشگاه فایل که از ووکامرس یا افزونههای دیگه استفاده میکنند خیلی مهم هست. پس خودتون باید دست به کار شده و در بازههای زمانی چند ماهه کاری کنید که کاربران خودشون اقدام به تغییر رمز در وردپرس بکنند. در مقاله آموزش تغییر رمز عبور تمام کاربران در وردپرس به این مورد پرداختم.
افزونههای امنیتی مختلفی برای وردپرس ساخته شدهاند که امکان فراهم کردن قابلیتهای امنیتی را در وردپرس به شما خواهند داد. افزونه wordfence وردپرس یکی از پرطرفدارترین افزونههای امنیتی در وردپرس هست که به شما امکان افزایش امنیت وردپرس و جلوگیری از هک سایت را خواهد داد. با استفاده از این افزونه میتونید بیشتر راهکارهایی که در بالا به معرفی اونها پرداختیم را فقط با این افزونه فراهم کنید. در مقاله افزایش امنیت وردپرس و اسکن امنیتی وردپرس با Wordfence Security به معرفی کامل این افزونه پرداختم که میتونید ازش استفاده کنید.
یکی دیگه از افزونههای امنیتی در وردپرس افزونه امنیت وردپرس iThemes Security هست که امکاناتی مثل بک آپ گیری خودکار از دیتابیس وردپرس را به شما میده که هر زمان سایت مورد حمله قرار گرفته بود بتونید با استفاده از نسخه پشتیبان وردپرس مشکلات را برطرف کنید.
امیدوارم که این آموزش هم مورد توجه و پسند شما قرار گرفته باشه و با استفاده از راهکارهای معرفی شده در این مقاله بتونید امنیت وردپرس را افزایش داده و اقدام به جلوگیری از هک وردپرس و نفوذر در سایت خودتون بکنید. در صورتی که در رابطه با این آموزش سوال یا مشکلی داشتید در بخش دیدگاهها اعلام کنید تا در کوتاهترین زمان ممکن پاسخگوی شما باشم ...