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

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

 

۱ – به روز بودن وردپرس

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

 

۲ – به روز بودن قالب و افزونه ها

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

 

۳ – دزدی ممنوع 

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

 

۴ – استفاده کردن از نام کاربری و کلمه عبور قوی

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

 

۵ – استفاده نکردن از wp به عنوان اسم پیش فرض جداول وردپرس 

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

$table_prefix = 'wp_';

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

 

۶ – امنیت Wp-config

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

  • خب اول چه با استفاده از سی پنل چه با استفاده از اف تی پی یا هر ابزار دیگه فایل wp-config رو دانلود کنید
  • حالا با فرض اینکه سایت شما داخل فولدر public_html قرار داده شده ما فایل رو به یک فولدر قبل تر منتقل میکنید
  • حالا کل محتویات فایل wp-config داخل public_html رو پاک کنید و فقط این قطعه کد رو داخل فایل قرار بدید
<?php include(‘/home/usr/wp-config.php’); ?>
  • در اینجا اسم usr همون نام کاربری شما هست که باهاش وارد سی پنل شدید .  در عکس زیر میتونید ببینید که usr باید با چی جایگزین بشه
  • حالا سایت خودتون  رو باز کنید اگر دیدید وردپرس به شما خطا میده باید دوباره چک کنید که آدرس رو درست وارد کردید . میتونید از تیم پشتیبانی هاست هم کمک بگیرید که آدرس دقیق فولدر قبل از publc_html چی هست تا شما رو راهنمایی کنند.

اگر سایت شما فولدر public_html ندارید احتمالا سیستم هاست شما Cpanel نیست که جای نگرانی نیست شما میتونید از هاست 

خودتون سوال کنید که اسم فولدر اصلی شما چی هست و فایل رو کجا میتونید آپلود کنید.

 

 

۷ – مسدود کردن دسترسی به wp-config

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

<files wp-config.php>

order allow,deny

deny from all

</files>


۸ – محافظت از لیست شدن فولدر ها

به صورت خلاصه بخوایم بگیم اگر شما آدرس یک فولدر رو وارد کنید در مرورگر اینترنت خودتون اگر اون فولدر فایل index.php یا index.html ( یا هر فایل دیگه که به عنوان فایل ورودی مشخص شده )  وجود نداشته باشه کاربر لیست تمام فایل ها و فولدر های اون فولدر رو مشاهده میکنه . برای جلوگیری از اینکار کافیه یک فایل index.php خالی در هر فولدر اصلی قرار بدید ( این کار رو اتوماتیک وردپرس انجام داده )

شما میتونید با ویرایش htaccess اصلی وردپرس و اضافه کردن این قطعه کد جلوی این نمایش محتویات فولدر رو بگیرید حتی اگر فایل ایندکس اصلی هم پاک شده باشه 

Options -Indexes
Options All -Indexes

 

 ۹ – محدود کردن دسترسی به htaccess

میشه گفت در کنار wp-config فایل htaccess یکی از مهمترین فایل های تنظیماتی وردپرس هست و دسترسی بدون اجازه به این فایل خطرات خاص خودش رو داره . شما میتونید با اضافه کردن این قطعه کد به فایل htaccess خودتون تمامی دسترسی های رو مسدود کنید ( به جز دسترسی خودتون به صورت مستفیم از طریق ftp یا cpanel )

<FilesMatch "(\.htaccess)">

 Order deny,allow

 Deny from all

</FilesMatch>

 

۱۰ – غیر فعال کردن دسترسی به XML-RPC

با استفاده از راه ارتباطی XML-RPC شما می تونید با استفاده از ابزارهای سوم شخص مثل windows live writer برای سایت خودتون پست بزارید یا نظرات رو مدیریت کنید یه هر فعالیت مدیریت دیگه . به صورت خلاصه این راه ارتباطی برای وصل شدن ابزارهای سوم شخص به سایت وردپرسی شما هست که در اکثر مواقع شما نیازی بهش ندارید ولی فعال هست و فعال بودنش باعث میشه ریسک دسترسی بدون اجازه به سایت شما بالا بره .  برای اینکه این راه ارتباطی رو کامل ببندید کافیه که این قطعه کد رو به htaccess اصلی وردپرس اضافه کنید

<Files xmlrpc.php>

 Order Deny,Allow

 Deny from all

</Files>

 

۱۱ – غیر فعال کرد فایل PHP در فولدر uploads

خب فولدر Uploads کارش مشخص هست و قرار نیست هیچ اسکریپت PHP داخلش اجرا بشه پس برای اینکه صد در صد جلوی اینکار رو بگیرید یک دونه فایل htaccess داخل  فولدر uploads بسازید و کد زیر رو داخلش قرار بدید

<Files *.php>

  deny from all

</Files>

 

۱۲ – غیر فعال کردن ویرایش فایل در محیط مدیریت وردپرس

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

define( 'DISALLOW_FILE_EDIT', true );

 

۱۳ – عدم اجرای اسکریپت در محتوا

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

define( 'DISALLOW_UNFILTERED_HTML', true );

 

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