2.4k
در سالهای اخیر ابزارها و خدمات گسترش وسیعی برای توسعه فضای وب ایجاد شد. سیستمهای مدیریت محتوا (CMS) مانند وردپرس، جوملا و بسیاری دیگر به صاحبان کسب و کار اجازه میدهد که سریع و کارآمد برای خود یک حضور آنلاین ایجاد کنند. معماری توسعهپذیر، ماژولها و پلاگینهای ارزشمند و اکوسیستمهای توسعهپذیر آنها داشتن یک وبسایت را بدون نیاز به سالها آموزش امکانپذیر میکند.
بدون شک این یک چیز با ارزش است اما از طرف دیگر مشکلی وجود دارد و آن این است که بسیاری از طراحان وب نمیدانند که چگونه از امنیت وبسایت خود مطمئن شوند و یا حتی درکی از اهمیت امنیت وبسایت ندارند. ما در این آموزش ۱۰ مرحله مهم که طراحان وب برای تامین امنیت وبسایت خود باید در نظر بگیرند را ارائه میدهیم.
۱- بهروزرسانی، بهروزرسانی، بهروزرسانی:
وبسایتهای بسیاری هر روزه در معرض خطر ناشی از استفاده از نرمافزارهای منسوخ و ناامنی که بر روی آنها اجرا میشوند، هستند. این خیلی مهم است که وبسایت خود را با پلاگینها و نسخه CMS جدیدی که در دسترس است بروز رسانی کنید تا امنیت وبسایت شما در خطر نباشد. امروزه بیشترین هکها کاملا اتوماتیک هستند توسط رباتهایی که به طور مداوم سایتها را اسکن میکند و به دنبال بهرهبرداری از فرصتها هستند. بروز رسانی یکبار در ماه یا یکبار در هفته خیلی کافی نیست زیرا به احتمال بسیار زیاد رباتها قبل از شما یک آسیبپذیری برای نفوذ پیدا کردهاند. مگراینکه شما درحال اجرای website firewall like CloudProxy باشید که به محض انتشار آن نیاز به بروز رسانی دارید. اگر در حال اجرای وردپرس هستید پلاگین ‘WP Updates Notifier توصیه میشود. این ایمیلها به شما اجازه میدهد از زمانی که یک پلاگین یا هسته وردپرس برای بروزرسانی موجود باشد، باخبر شوید. شما میتوانید با دنبال کردن @sucuri_security در توتیتر از بروز رسانی و هشدارهای امنیتی اطلاع پیدا کنید.
۲- انتخاب Passwords قدرتمند برای امنیت وبسایت و خودتان:
برای کار کردن به روی سایت مشتری اغلب نیاز است که با استفاده از جزئیات مدیریت کاربران به سایت/سرور آنها وارد شویم. در بسیاری از موارد Root Password آنها امن نبوده ولی کمی ترسناک است که این موضوع به آنها گفته شود، اما admin/admin ترکیب امنی برای Username و Password نیست. اگر Password شما در لیست پسوردهای رایج مشاهده شود باعث میشود که سایت شما نقاطی برای هک داشته باشد و امنیت وبسایت شما در خطر باشد. حتی اگر Password شما در این لیست وجود نداشته باشد، تصورات اشتباهی در مورد رمز عبور قوی وجود دارد. سهلانگاری در مورد انتخاب اندازه Password مناسب بخشی از مشکل است.
هنگامیکه میخواهید یک پسورد مناسب انتخاب کنید باید سه مورد زیر را در نظر بگیرید:
– پیچیده بودن: Password باید بصورت تصادفی (Random) انتخاب شود. با انتخاب Password تصادفی دیگر کسی با پی بردن به تاریخ تولد یا تیم ورزشی مورد علاقه شما و دیگر موارد نمیتواند حساب شما را هک کند.
– طولانی بودن: Password باید از بیشتر از ۱۲ کاراکتر باشد. وقتی که برای محدودیتی برای وارد کردن رمز عبور وجود نداشته باشد یک رمز عبور ۱۲ کاراکتری به راحتی میتواند حدس زده شود. بنابراین بهتر است که رمز عبور طولانیتر انتخاب شود و بیش از ۱۲ کاراکتر باشد.
– منحصربهفرد بودن: از Password تکراری استفاده نکنید.
۳- یک سایت = یک ظرف:
من وسوسه شدن را درک میکنم. شما یک فضای نامحدودی برای میزبانی وب دارید پس چرا سایتهای بسیاری بر روی آن قرار ندهید! متاسفانه این یکی از بدترین شیوهها از نظر امنیتی است. با قرار دادن سایتهای بسیار بر روی یک فضا سطح حمله بزرگی ایجاد میکنید. به عنوان مثال شما ممکن است یک سایت که شامل وردپرس و با یک موضوع و ۱۰ پلاگین است که بر روی آن نصب شده است به طور بالقوه ممکن است مورد هدف مهاجمان قرار گیرد. حال اگر بر روی سروری که مورد حمله مهاجمان قرار گرفته شما میزبان ۵ سایت باشید که سه تا از آنها با وردپرس و دوتا با جوملا طراحی شده باشند با ۵ موضوع و ۵۰ پلاگین که بر روی آنها نصب شده است، وضعیت بدتر خواهد شد. این کار نه تنها باعث میشود که تمامی سایتهای شما همزمان هک شوند بلکه فرآیند پیشگیری و پاکسازی به زمان بیشتری نیاز پیدا میکند.
بعد از اینکه پاکسازی با موفقیت انجام شد شما باید به فکر بازنشانی پسورد باشید، به جای اینکه این کار را فقط برای یک سایت انجام دهید اکنون باید برای تمام سایتهای خود پسورد را بازنشانی کنید. هر پسورد مرتبط با هر وبسایت، تمامی سیستمهای مدیریت محتوا (CMS)، پایگاه دادهها، FTP تمامی کاربران سایتها باید تغییر کند. در نهایت بعد از انجام تمامی این موارد به خانه اول بازمیگردید و وبسایت شما ممکن است که دوباره آلوده شود.
۴- دسترسی محسوس کاربر:
این قانون برای وبسایتهایی است که چندین کاربر برای لاگین کردن به سایت دارند. این مهم است که هر کاربر برای انجام کار خود اجازه دسترسی داشته باشد. اگر نیاز دارند به صورت لحظهای به آنها دسترسی داده شود و بعد از اتمام کارشان این دسترسی محدود شود. این مفهوم به عنوان حداقل امتیاز شناخته میشود.
به عنوان مثال اگر دوستی دارید که میخواهد یک پست در سایت شما قرار دهند نیازی نیست که دسترسی کامل داشته باشد. این حساب کاربری فقط باید قادر به ایجاد پست جدید و ویرایش باشد. نیازی نیست دسترسی که قادر به تغییر تنظیمات وبسایت است را داشته باشد. داشتن دسترسیهایی که به دقت تعریف شده میتواند اشتباهات و عواقب خطر را محدود کند و میتواند وبسایت را از آسیبهای کاربران سرکش محافظت کند.
اغلب مدیریت کاربران بخش پاسخگویی و نظارت را نایده میگیرند. اگر مردم یک حساب کاربری مشترک داشته باشند و ناخواسته توسط کاربران تغییر کند، چگونه شخصی را که مسئول است را پیدا میکنید؟
وقتی برای هر کاربر حساب جداگانهای داشته باشید میتوانید رفتار هر کاربر را جداگانه بررسی کنید، بنابراین میتوانید نقاط ناهنجار را پیدا کنید و شخصی که حسابش در معرض خطر است را تشخیص دهید.
۵- تغییر تنظیمات پیش فرض CMS ها برای بهبود امنیت وبسایت:
برنامههای CMS امروزی اگرچه برای استفاده بسیار راحت هستند اما از دیدگاه امنیتی برای کابران نهایی بسیار خطرناک است. تاکنون رایجترین حملات در وبسایتهای بوده که کاملا اتوماتیک اند و بسیاری از حملات با تکیه بر تنظیمات پیشفرض انجام میشود. شما با تغییر تنظیمات پیشفرض هنگام نصب CMS ها میتوانید از بسیاری از حملات دوری کنید. معمولا سادهترین راه برای تغییر تنظیمات پیش فرض هنگام نصب CMS است اما بعد از نصب هم میتوان این نتظیمات را تغییر داد.
۶- انتخاب توسعهپذیری برای بهبود امنیت وبسایت:
یکی از زیباترین نکات در مورد برنامههای کاربردی CMS های امروزی توسعهپذیر بودن آنهاست. اما این توسعهپذیر بودن بزرگترین نقطه ضعف آنها است. تعداد زیادی از پلاگین، افزودنیها، و ماژولها وجود دارند که تقریبا هر قابلیتی که شما میتوانید تصور کنید را ارائه میدهند. واقعیت این است که این تعداد بیشمار برنامههای افزودنی مانند شمشیر دو لبه هستند، اغلب افزونههای متعددی پیشنهاد میشود که قابلیتهای مشابه دارند، شما چگونه متوجه میشوید که کدامیک را نصب کنید؟
در اینجا مواردی را بیان میکنیم که معمولا در هنگام تصمیمگیری در مورد انتخاب افزونهها برای نصب باید در نظر گرفته شوند:
– اولین مورد این است که پسوندی که به تازگی بروزرسانی شده انتخاب شود. اگر آخرین بروزرسانی برای یک سال قبل باشد باعث این نگرانی میشود که نویسنده دیگر قصد ندارند بر روی آن کاری انجام دهد. بهتر است از افزونههایی استفاده شود که به طور مداوم نویسنده در حال توسعه آنها هستند.
– همچنین به قدمت و تعداد نصب افزونههای باید توجه شود. افزونههایی که خیلی زیاد نصب شدهاند نسبت به آنهایی که حدود ۱۰۰ مرتبه نصب شده و توسط یک نویسنده برای اولین بار منتشر شده، بیشتر قابل اعتماد است. نه تنها توسعهدهندههای با تجربه ایدههای بهتری دارند بلکه احتمال اینکه بخواهند شهرت و محبوبیت خود را با توسعه کدهای مخرب از بین ببرند بسیار کم است.
– اینکه شما برنامههای افزودنی و تمهای خود را از منابع قانونی دانلود کنید بسیار مهم است. سایتهای بسیاری هستند که نسخههای رایگانی را به شما برای دانلود پیشنهاد میدهند. وبسایتها این نسخههای رایگان را فقط با یک هدف ارائه میدهند: آلوده کردن وبسایت شما با نرمافزارهای مخرب.
۷- بکآپ گرفتن دورهای برای بهبود امنیت وبسایت:
مانند هر چیز دیگری در دنیای دیجیتال، ممکن است که یکباره همه چیز از بین برود. بهتر است که گاهی اوقات از وبسایت خود بکآپ بگیرید. بکآپ گرفتن از وبسایت خیلی مهم است اما ذخیرهسازی این بکآپ بر روی سرور یک ریسک امنیتی خیلی بزرگ است. این بکآپ که شامل نسخههای اصلاح نشده CMS و افزونههایی است که در دسترس عموم است، به هکرها اجازه میدهد که به راحتی به سرور شما دسترسی پیدا کنند.
۸- فایلهای پیکربندی شده سرور:
شما باید درباره پیکربندی فایلهای وب سرور خود اطلاعات داشته باشید. وبسرورهای آپاچی از فایل .htaccess و سرورهای Nginx از فایل nginx.conf و سرورهای Microsoft IIS از فایل web.config. استفاده میکنند که اغلب در root web directory یافت میشوند و بسیار قدرتمندند. این فایلها به شما اجازه میدهند قوانینی از جمله دستورات بهبود امنیت وب سایت را اجرا کنید.
۹- نصب SSL:
در مورد مقالات بسیاری که به اشتباه بیان کردهاند که نصب SSL همه مسائل امنیتی شما را حل میکند دو طرز تفکر وجود دارد. SSL سایت شما را در برابر هیچ حمله مخربی محافظت نمیکند و توزیع نرمافزارهای مخرب را متوقف نمیکند. SSL ارتباط بین دو نقطه A و B – بین سرور وب سایت شما و مرورگر را رمزگذاری میکند. این رمزگذاری به این دلیل که مانع از این میشود که هر کسی قادر به مشاهده ترافیک و اطلاعات انتقالی شما نباشد بسیار با اهمیت است. SSL برای امنیت وبسایت تجارت الکترونیک و هر وبسایتی که فرمهایی با اطلاعات حساس و شخصی افراد را میپذیرد بسیار مهم است. گواهینامههای امنیتی SSL انتقال اطلاعات بازدیدکنندگان شما را محافظت میکند.
۱۰- مجوزهای دسترسی فایل:
مجوزهای دسترسی تعریف میکند که چه کسی میتواند با فایل چه کاری انجام دهد.
هر فایل سه مجوز دسترسی دارد:
– خواندن (Read): به این سطح دسترسی عدد ۴ داده میشود.
– نوشتن (Write): به این سطح دسترسی عدد ۲ داده میشود.
– اجرا کردن (Execute): به این سطح دسترسی عدد ۱ داده میشود.
اگر میخواهید چندین اجازه دسترسی را به شخصی بدهید کافی است که اعداد را باهم جمع کنید. به عنوان مثال اگر میخواهید به شخصی اجازه خواندن و نوشتن بدهید باید در مجوز دسترسی کاربر عدد ۶ را وارد کنید. اگر علاوه بر خواندن و نوشتن مجوز اجرای فایلها را هم بدهید باید عدد ۷ را وارد کنید.
نتیجه:
با انجام این ده مرحله نسبتا ساده شما میتوانید به طور چشمگیری امنیت سایت خود را افزایش دهید، هرچند که انجام این مراحل به تنهایی تضمین نمیکند که سایت شما هرگز هک نشود اما میتواند اکثریت قریب به اتفاق حملات خودکار را متوقف کند.
بدون دیدگاه