عدم رعایت و توجه به نکات امنیتی در یک وبسایت باعث به وجود آمدن مشکلات بسیاری می‌شود که در برخی مواقع جبران ناپذیر خواهد بود. اما اقدام به افزایش امنیت باعث بوجود آمدن لایه‌ای امن در برابر نفوذها و دیگر مشکلات می باشد. حتما با این جمله بارها برخورد کردید که ” امنیت هیچگاه صددرصد نیست! ” بله درست است! اما همیشه راه‌های مختلفی برای افزایش حداکثری امنیت وجود دارد که در این مقاله کوتاه به آن پرداخته می‌شود.

انتخاب میزبان (HOST) مطمئن

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

وردپرس را بروز نگاه دارید

در بروزرسانی های دوره‌ای که وردپرس منتشر می کند؛ برطرف کردن مشکلات، رفع حفره های امنیتی و آسیب پذیری‌ها یا اضافه کردن ویژگی های جدید مورد توجه است. پس همیشه وردپرس خود را بروز نگاه دارید. برای اطمینان از بروزرسانی ها می توانید با اضافه کردن کد زیر در فایل wp-config.php آنها را بصورت خودکار دریافت کنید.

define ( 'WP_AUTO_UPDATE_CORE', true );

مخفی کردن نسخه وردپرس

شاید برای آن دسته از افرادی که وردپرس خود را بروز نگاه می دارند اعمال این تغییر الزامی نباشد. اما برای مطمئن شدن از اینکه وجود آسیب‌پذیری در یک نسخه از وردپرس باعث سواستفاده نشود با اضافه کردن کد زیر در فایل function.php پوسته خود می‌توانید آن را مخفی کنید.

remove_action( 'wp_head', 'wp_generator' );

غیرفعال کردن ویرایشگر پوسته و افزونه

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

define( 'DISALLOW_FILE_EDIT', true );

فعال کردن SSL در وبسایت

فعال کردن پروتکل SSL برای هر وبسایت امری ضروری است. SSL برای انتقال امن اطلاعات مورد استفاده قرار می گیرد. با فعال کردن آن نشانی سایت شما از http://zooroofchi.ir به https://zooroofchi.ir تغییر پیدا می کند. هم اکنون بیشتر میزبانان وب این ویژگی را بصورت رایگان برای سایتهای زیرمجموعه خود فعال می کنند. پس از فعالسازی می توانید از آموزش تغییر مسیر از http به https برای انتقال نشانی استفاده کنید.

تهیه پشتیبان بصورت منظم

مطمئن شوید که به صورت دوره‌ای و منظم از سایت وردپرس خود پشتیبان تهیه می‌کنید. در دسترس بودن یک پشتیبان از داده ها می تواند خیال شما را بابت از دست دادن اطلاعات خود راحت کند! برای اینکار می توانید از افزونه‌های پشتیبان‌گیری مانند All-in-One WP Migration استفاده کنید.

بروزرسانی افزونه‌ها و پوسته‌ها

تنها بروز نگاه داشتن وردپرس در افزایش امنیت وبسایت شرط نیست! بلکه این نکته شامل افزونه‌ها و پوسته‌ها نیز می شود. پس سعی کنید آنها را نیز همیشه بروزسانی کنید. زیرا بیشتر نفوذها از طریق آسیب‌پذیرهای موجود در افزونه‌ها و پوسته‌ها اتفاق افتاده است. برای بروزرسانی خودکار افزونه‌ها و پوسته‌ها به ترتیب، کدهای زیر را در wp-config.php وارد نمایید.

add_filter( 'auto_update_plugin', '__return_true' )
add_filter( 'auto_update_theme', '__return_true' );

حذف افزونه‌ها و پوسته‌های بی‌مصرف

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

تغییر افزونه‌های تاریخ گذشته

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

استفاده نکردن از افزونه و پوسته تجاری رایگان!

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

نام کاربری admin را انتخاب نکنید!

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

پیشنهاد: کاربری با نام کاربری admin بسازید و نقش کاربری آن را مشترک قرار دهید.

گذرواژه ایمن استفاده کنید

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

پیشنهاد: سعی کنید بصورت دوره‌ای گذروازه‌تان را تغییر دهید.

استفاده از کپتچا در فرم‌ها

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

محدود کردن تلاش برای ورود

با این محدودیت امکان سواستفاده نفوذگر در صورت آزمایش گذرواژه و حدس زدن آن به حداقل خواهد رسید. مثلا میتوان با دو تلاش غیرموفق از طریق فرم ورود آی‌پی مورد نظر را مسدود کرد. برای اینکار می توان از افزونه‌هایی نظیر WP Limit Login Attempts بهره برد.

پیگیری رفتار کاربران

پیگیری کردن اعمال کاربر در سایت یکی از ظرفیت هایی است که می توان از آن برای افزایش امنیت و همچنین کنترل درخواست ها استفاده کرد. در این زمینه می توان افزونه WP Security Audit Log را پیشنهاد کرد. این افزونه با ثبت و ضبط رفتار کاربر می تواند بخوبی مدیریت را از وقایع موجود در سایت باخبر سازد.

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

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

<!--nextpage-->

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

<?php wp_link_pages(); ?>

نکته: برای فعال کردن این قابلیت در نوشته کد بالا را در صفحه تک نوشته (single.php) و در حلقه محتوای وردپرس درج کنید.

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

در مرحله بعدی به هاست خود وارد شده و فایل .htaccess را در حالت ویرایش باز کنید و کد زیر را در آن بیابید:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

و این کد را در بالای آن قرار دهید:

RewriteCond %{ENV:HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

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

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

استفاده از دستور شرطی

توجه: این روش برای سایتهای بزرگ یا با دسته بندی های متعدد توصیه نمی شود.

فرض کنید ما میخواهیم یک دسته بندی را با پوسته‌ای متفاوت به نمایش بگذاریم؛ پس از طراحی صفحه، آن را با نام New-Template.php ذخیره کرده؛ سپس محتوای صفحه archive.php را در یک سند جدید با نام Old-Template.php قرار داده و دستورات زیر را در صفحه archive.php که اکنون خالی هست قرار می دهیم.

<?php if (in_category('CAT-ID'))
	{
    include (TEMPLATEPATH . '/New-Template.php');
	}
    else { 
	include (TEMPLATEPATH . '/Old-Template.php');
	}
?>

در خط ابتدایی کدها، شرطی وجود دارد:

if (in_category('CAT-ID'))

که در صورت درست بودن، دستور اول اجرا شده:

include (TEMPLATEPATH . '/New-Template.php');

و در غیراینصورت دستور دوم اجرا می شود:

include (TEMPLATEPATH . '/Old-Template.php');

شرط بررسی می کند که اگر آیدی دسته بندی (با CAT-ID در دستور مشخص شده) که وارد شده درست باشد، پوسته جدید (New-Template.php) را به کاربر نمایش می دهد و در غیر اینصورت همان پوسته قبلی ( Old-Template.php) نمایش داده می شود.

نکته: بجای CAT-ID آیدی دسته بندی که میخواهید با پوسته جدید نمایش داده شود را وارد کنید.

استفاده از سند category

توجه: این روش نسبت به روش قبلی ساده بوده و کارایی بیشتری دارد.

پس از طراحی پوسته دسته بندی، آن را با نام category ذخیره می کنیم. این روش را می توان به دو صورت انجام داد:

  1. category-slug
  2. category-ID

slug همان نامک در وردپرس است. شما می توانید با قرار دادن نامک دسته بندی، پس از category از پوسته طراحی شده استفاده کنید.

category-ctname

یا اینکه با قرار دادن آیدی دسته بندی، از پوسته جدید در دسته بندی بهره ببرید.

category-123

هر دو روش که از نظر شما گذشت راهکارهایی هستند که هم اکنون در بیشتر سایت مورد استفاده قرار می گیرند. پیشنهاد می شود هریک از این روش ها بنا بر نیاز خود مورد استفاده قرار دهید. اما همانطور که گفته شد استفاده از سند category ساده‌تر و بهینه‌تر می باشد.

در یکی از پروژه های ورزشی (فوتبال) نیاز به یک افزونه برای مدیریت باشگاه احساس و همین علت افزونه WP Club Manager برای این کار انتخاب شد. این افزونه بسیار کارآمد و پیشرفته است. برای همین تصمیم به فارسی سازی این افزونه گرفتم. در حال حاضر بیش از ۷۰ درصد کل کلمات و بیش از ۹۰ درصد کلمات اصلی ترجمه شده است. بزودی ترجمه کامل می شود.

خواندن ادامه