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

ممکن است بعد از پیشنهاد استفاده از سیستم مدیریت محتوا وردپرس بجای کدنویسی اختصاصی به یک دولوپر ارشد و یا هد فنی با همچین واکنشی روبه‌رو شوید :))

اجازه بدید قبل از اینکه وارد این داستان شویم نگاهی به داستان پیدایش وردپرس بیندازیم...

داستان از اینجا شروع شد که «مت چارلز مولنوگ» که متولد ۱۱ ژانویه ۱۹۸۴ در هوستون تگزاس بود، مدتی به مطالعه ساز ساکسیفون علاقه‌مند شده بود و تصمیم داشت در آموزشگاه بازیگری و هنرهای نمایشی حضور پیدا کند. مولونگ بعد از سفری که به واشنگتن داشت، عکس‎‌هایی گرفته بود که دنبال جایی میگشت تا بتواند آنها را در وبلاگی منتشر کند. اولین سیستمی که مولنوگ برای انتشار عکس و وبلاگ‌نویسی از آن استفاده کرد، سیستم b2/cafelog که یک سیستم مدیرت محتوا بر پایه زبان PHP بود. همین تجربه باعث شد که به این فکر بیفتد شاید بهتر باشد برای وبلاگ‌نویسی نرم‌افزاری به‌روز و سازگار با استانداردهای وب که نیازهایش را برآورده کند، بنویسد. او در ژانویه ۲۰۰۳، در وبلاگش این مطلب را اعلام کرد.

مولنوگ سریعا با شخصی به نام «مایک لیتل» تماس گرفت و با مطرح کردن قضیه از او خواست تا با کمک هم، شروع به نوشتن وردپرس با استفاده از b۲ کنند. توسعه دهنده اصلی b۲ یعنی میشل والدریجی هم به زودی به جمع دو نفره آن‌ها اضافه شد. خوب بیشتر از این سرتان را درد نیاورم اینطور شد که وردپرس به وجود آمد و در حال حاضر بیش از ۷۶ میلیون وب سایت در جهان با این CMS راه اندازی شده‌است.

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

برگردیم به گیف بالا که نتیجه پیشنهاد استفاده از سایت‌های وردپرس و کدنویسی شده است :))

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

در ادامه در مورد سه بخش زیر به نکاتی اشاره کنیم:

  • معرفی بهترن افزونه‌های کاربردی و ضروری وردپرس
  • بررسی نکاتی برای افزایش امنیت سایت وردپرس
  • رعایت نکات مهم فنی در حین توسعه وردپرس

معرفی بهترنی افزونه‌های کاربردی و ضروری وردپرس

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

۱. افزونه WP Rocket

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

۲. افزونه Soliloquy Slider

معمولا استفاده از اسلایدر، سرعت بارگذاری سایت را کاهش می‌دهد اما افزونه Soliloquy Slider برخلاف سایر افزونه‌های اسلایدر که ساختار و تنظیمات پیچیده‌ای دارند، ساده بوده و استفاده از آن راحت است. این افزونه حرفه‌ای و بسیار کاربردی دارای قالب‌های متعدد می‌باشد که می‌توانید از آن برای یک اسلایدر زیبا و طبق میل و سلیقه شخصی خود طراحی و پیاده سازی نموده و آن را در وبسایت خود منتشر نمایید.

۳. افزونه Backup Buddy

افزونه Backup Buddy از کل فایل‌‌های وردپرس بکاپ گرفته و به شما اطمینان می‌دهد که از تمام فایل‌های وب سایت خود یک نسخه پشتیبان برای مواقع لازم دارید. این پلاگین، سایت شما را در یک فضای کلود ذخیره می‌کند. تنها با یک بار نصب و تنظیم نمودن این پلاگین، خیال شما برای همیشه از بکاپ‌گیری سایت آسوده خواهد بود.

۴. افزونه Yoast SEO

یکی از افزونه‌های اصلی در حوزه سئوی وردپرس است که این افزونه قوانینی را در توابع خود جای داده که نتیجه نهایی موردپسند ربات‌های گوگل و کاربران قرار گیرد. شاید با شنیدن نام Yoast SEO گزینه‌های دیگری مانند WordPress SEO یا SEO Journal  نیز به ذهن بیایند، اما هیچ کدام از آن‌ها به خوبی Yoast SEO نیستند!

۵. افزونه Login Lockdown

افزورنه Login Lockdown یکی از مهم‌ترین افزورنه‌ها است. این پلاگین سایت شما را از فعالیت‌های ناخواسته حفظ می‌کند. به عبارت دیگر، حتماً می‌دانید که هر کسی می‌تواند بارها‌ و بارها با استفاده از پسوردهای تصادفی تلاش کند تا به سایت شما وارد شود و هیچ سیستم پیش‌فرضی برای متوقف نمودن ربات‌ها و کامپیوترهایی که در حال تلاش برای هک سایت شما هستند وجود ندارد. به همین خاطر است که باید از پلاگین Login Lockdown استفاده کنید تا هیچ‌کس بدون داشتن کلمۀ عبور، امکان ورود به سایت شما را نداشته باشد.

۶. افزونه Google XML sitemap

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

۷. افزونه Contact Form 7

پلاگینی است که تاکنون مورد استفاده میلیون‌ها کاربر وردپرسی قرار گرفته است و این در حالی است که هیچ پلاگین دیگری در راحتی طراحی و کاربرد، به پای آن نمی‌رسد. با استفاده از این پلاگین می‌توانید هر تعداد فیلد که خواستید را به فرم خود اضافه کنید. این پلاگین بسیار سبک بوده و سرعت بارگذاری سایت را کاهش نمی‌دهد. در یک کلام، Contact Form 7 یک فرم‌ساز ساده است که درخواست‌ها را دریافت نموده و آن‌ها را مستقیماً به ایمیل شما ارسال می‌کند.

بررسی نکاتی برای افزایش امنیت سایت وردپرس

ادمین پنل وردپرس، یکی از بخش‌هایی است که هکرها تلاش می‌کنند به آن دسترسی پیدا کنند. و درصورتی که بتوانند به عنوان ادمین وارد سایت شوند، یعنی به تمامی قسمت‎‌های پیشخوان مدیریت سایت دسترسی داشته باشند میتوانند هر تغییری و مشکلی را ایجاد کنند. به منظور کاهش میزان آسیب‌پذیری احتمالی سایت، می‌توانید امنیت ادمین پنل وردپرس را با رعایت نکات زیر بهبود ببخشید:

۱. نام کاربری و رمزعبور منحصربه‌فرد : سعی کنید از نام کاربری پیش‌فرض «admin» هرگز استفاده نکنید و با استفاده از پلاگین‌هایی مانند Username Changer، نام کاربری امن‌تری انتخاب کنید. مثلا از انتخاب کلمه «administrator»، نام سایت و یا نام خودتان خودداری کنید. از انتخاب رمزعبوری مشابه نام کاربری، کلماتی که به اطلاعات شخصیان نزدیک است و یا کلماتی ساده با تعداد حروف کم نیز اجتناب کنید و کاراکترها را به صورت اتفاقی به عنوان رمزعبور انتخاب کنید.

۲. استفاده از فناوری احراز هویت دو مرحله‌ای: با استفاده از (Two-factor authentication (2FA برای ورود به سایت، علاوه بر نام کاربری و رمزورود، کدی منحصر‌به‌فرد که معمولا از طریق اس‌ام‌اس یا یک اپلیکیشن ارسال می‌شود، استفاده کنید

۳. هویت کاربر را بررسی کنید: استفاده از فرم‌های reCAPTCHA که از کاربر درخواست می‌کنند تا نوشته‌ای که در تصویر می‌بینند را ارسال کنند، یک روش بسیار مفید برای پیشگیری از حملات بات‌نت‌ها برای ورود به سایت است. چون نمی‌توانند به طور خودکار این قسمت از مرحلهٔ ورود به سایت را انجام دهند.

۴. حفاظت از پسورد با wp-login.php: برای اینکار می‌توانید از لاگین سمت سرور قبل از اینکه صفحه ادمین پنل نشان داده شود درخواست داشته باشید.

۵. در انتخاب شرکت هاستینگ دقت کنید: شرکت‌های متعددی وجود دارند که به صورت خودکار جلوی حملات DoS و DDoS و دیگر انواع آسیب‌پذیری‌ها را می‌گیرند که بهتر است از آنها میزبانی وب را تهیه کنید.

۶. اجازهٔ دسترسی به فایل‌ها و فولدرها را بررسی کنید: حتما از درستی دسترسی فایل‌ها و پوشه‌های وردپرس اطمینان حاصل کنید به طوری که این کار از سوء‌استفادهٔ هکرها از فایل‌هایی که از امنیت بالایی برخوردار نیستند، جلوگیری به عمل می‌آورد. پوشه‌های وردپرس باید دارای پرمیشن 755 و فایل‌های وردپرس باید دارای پرمیشن 644 باشند که این از یک هاست به هاست دیگر متفاوت است.توجه کنید تحت هیچ شرایطی مجوز دسترسی به هیچ پوشه‌ای را به 777 تغییر ندهید و اگر دارای دسترسی شِل هستید، می‌توانید با اجرای این دستورات از امنیت وردپرس اطمینان حاصل کنید:

find /path/to/your/wordpress/install/ -type d -exec chmod 755 {} \;
find /path/to/your/wordpress/install/ -type f -exec chmod 644 {} \;

۷. ایمن‌سازی سمت سرور: مطمون شوید که کاربر دیتابیس شما تنها به پرمیشن‌های SELECT ،INSERT ،UPDATE و DELETE دسترسی دارد به علاوه اینکه برای دیتابیس از نام‌کاربری و رمزعبور قوی استفاده کنید و در نهایت با اضافه کردن کد زیر به فایل wp-config.php، اجازهٔ ویرایش فایل در سمت سرور را از کاربران بگیرید:

define('DISALLOW_FILE_EDIT', true);


رعایت نکات مهم فنی در حین توسعه وردپرس

  • خودداری از نوشتن کلیه کدهای جاوااسکریپت مربوط به قالب سایت در یک فایل

نوشتن همه کدهای جاوااسکریپت در یک فایل با نام‌هایی مثل main.js و یا theme.js مستقیماً تأثیر منفی روی سرعت لود سایت دارد. و ممکن است حجم نهایی فایل‌های جاوااسکریپت به 1 مگابایت هم برساند.
جدا کردن اسکریپت‌های هر صفحه باعث افزایش عملکرد و در نهایت بهبود تجربهٔ کاربری میشود امکان استفاده از توابعی نظیر ()wp_dequeue_script را فراهم می‌کند.

  • استفاده از اسامی ‌مناسب برای متغیرها، توابع و غیره
    زمانی که میخواهید برای متغیرها، کلاس‌ها و توابع نام‌گذاری کنید، از نام‌هایی استفاده کنید که مرتبط باشند و محتویات آن‌ها را از روی نام‌هایشان مشخص باشد و احتمال وجود فایلی با نام مشابه نیز بسیار کم باشد.
  • استفاده از امکانات پیش‌فرض و کِرنِل وردپرس

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

  • در نظر گرفتن مقدار TRUE برای متغیر WP_DEBUG
    برای اینکه خطاها برای عموم نشان داده نشوند مقدار WP_DEBUG به صورت پیش‌فرض false در نظر گرفته شده است که بهتر است این مقدار true در نظر گرفته شود تا تمامی خطاها و هشدارها برای برنامه‌نویس نشان داده شوند.
  • استفاده نکردن از پَسوند php. به جای css. و js.
    نوشتن کدهای مرتبط با رنگ‌ها و فونت‌ها در فایلی همچون style.php و ذخیرهٔ آن‌ها در دیتابیس و سپس فراخوانی آن با استفاده از کدی مثل آنچه در ادامه مشاهده می‌کنید، می‌تواند تأثیر بسیار بدی بر عملکرد و سرعت یک سایت وردپرسی داشته باشد:
<link rel='stylesheet' type='text/css' href='css/style.php?ver=1' />

علاوه بر این، نوشتن کدهای CSS در کنار متغیرهای PHP موجب کاهش خوانایی کدها شده و انجام اصلاحات روی آن‌ها را نیز با مشکل مواجه می‌کند.

  • جلوگیری از دسترسی مستقیم به فایل‌ها با استفاده از لینک صفحات

تصور کنید آدرس حذف کردن یک مطلب در سایت شما به صورت زیر است:

http://example.com/wp-admin/post.php?post=123&action=trash

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

http://example.com/wp-admin/post.php?post=123&action=trash&_wpnonce=b192fc4204

در این صورت، اگر کاربر دیگری بخواهد از آن استفاده کند، ارور 403 Forbidden برای وی نشان داده می‌شود.

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

جمع بندی

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

اگر استفاده از پلاگین‌های دیگری را ضروری میدانید حتما در زیر این پست به اشتراک بگذارین و یا اگر نکات امنیتی و فنی دیگری میشناسید حتما پیشنهاد دهید :))