فرض کنید یک وب سایت دارید و مبالغ زیادی صرف وبسایت خود کرده اید و زمان زیادی برای وب سایت گذاشته اید.

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

در این زمان است که هیچ کاری از دستتان بر نمی آید و تلاش های خود را سوخته می بینید !


اما چگونه از وقوع این اتفاق جلوگیری کنیم ؟ در این مقاله برخی موارد مهم در تامین امنیت وب سایت را بررسی خواهم کرد.



جلوی ربات های اسپمر را بگیرید.


جلوی ربات های اسپمر را بگیرید

خیلی مهم است که فعالیت های انجام شده در وب سایت مربوط به انسان ها باشد نه ربات ها.

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

این ربات ها می توانند فرم هارا پر کنند و ارسال کنند و در واقع باعث اسپم شوند.

پس دست این ربات هارا به وب سایت قطع کنید . اما چگونه ؟


برای این که تشخیص دهید آیا واقعا یک انسان است که یک فعالیتی را انجام می دهد ( مانند نظر دادن ) یک چالش غیرقابل انجام توسط ربات هارا ارائه دهید . به عنوان مثال یک کد امنیتی قرار دهید و از کاربر بخواهید آن را وارد کند و در صورتی که کد امنیتی درست بود می توانید فعالیت را تایید کنید .

یکی دیگر از راه ها استفاده از ریکپچا گوگل است که به صورت خودکار تصاویری به کاربران نشان می دهد و بر اساس آن با هوش مصنوعی خود تصمیم می گیرد که درخواست کننده ربات است یا انسان ؟


استفاده از ریکپچا گزینه بهتری برای استفاده است .




فرمت فایل هارا جدی بگیرید


فرمت فایل هارا بررسی کنید

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

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

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


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

بر روی فرمت فایل ارسالی نظارتی نمی کنید نهایتا یک بررسی با ویژگی های HTML و JavaScript انجام می دهید ( خب خوب است اما قطعا به سادگی قابل دور زدن است و به همین دلیل کاربر می تواند فایل خود را با هر پسوندی ارسال کند )

یک هکر یک فایل .php ( یا هر فایل اجرایی مخرب دیگری ) می سازد به طوری که به عنوان مثال همه فایل های وب سایت را پاک کند . حالا کافی است محدودیت آپلود فایل سمت کاربر را دور بزند و فایل خود را ارسال کند و با توجه به این که محدودیتی از لحاظ فرمت فایل قائل نشده اید اجازه می دهید یک فایل مخرب اجرایی بر روی سرور شما آپلود شود سپس لینک آن را به عنوان پروفایل قرار می دهید و هکر به سادگی با باز کردن لینک باعث اجرا شدن فایل مخرب می شود و وب سایت شما کاملا به فنا می رود . در بین مواردی که بررسی کردیم و خواهیم کرد این مورد خطرناک ترین اشتباهی است که می توانید بکنید چون دست هکر را برای هر کاری باز گذاشته اید.


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


حملات ایکس اس اس

حملات XSS را جدی بگیرید

این حملات به خودی خود خطرناک هستند و در صورتی که وب سایت شما یک وب سایت محبوب و مورد اعتماد باشد خطرناک تر هم می شوند .

فرض کنید یک بخش جستجو در سایت خود دارید و کاربر متن را جستجو کرده و نتایج را می بیند .

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

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

و معمولا بخش های جستجو وب سایت با متد GET هستند تا به راحتی قابل اشتراک گذاری و سریع باشند .

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

<script> window.location = "https://fishing-website.com"; </script>

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

کافی است هکر مشابه این کد را در سایت شما پیاده سازی کند و به سایت فیشینگ خود هدایت کند .

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

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

بدین ترتیب اعتبار سایت شما از بین خواهد رفت و کاربران شما نیز قربانی می شوند.


برای رفع این مشکل می توانید تگ هارا حذف یا انکود کنید که با strip_tags می توانید تگ هارا حذف کرده و با htmlentities می توانید انکود کنید و آن هارا بی اثر کنید.

در لاراول و موتور Blade شما با {{ باز و }} بسته می توانید عملکرد html specialchars در php را پیاده سازی کنید .



حملات dDos

حملات dDos

این حملات مربوط به درخواست های متعدد به وب سایت شما توسط ربات ها مربوط می شوند.

ربات ها آنقدر به وب سایت شما درخواست ارسال می کنند که وب سایت شما به اصطلاح down شود .

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

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


پس باید بر روی درخواست ها نظارت داشته باشید .

این که حمله دیداس رخ داده یا نه میتواند روش های مختلفی داشته باشد که در این زمینه سرویس های ارائه دهنده سرور می توانند حملات را تشخیص دهند مانند کلوفلر ( CloudFlare ) و ابرآروان ( ArvanCloud) که توانایی تشخیص حملات دیداس و مدیریت آن هارا دارند.

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


استفاده از فریم ورک ها و نسخه بروز آنها


استفاده از فریم ورک ها و نسخه بروزآنها

خب این یک مسئله مهم است . شما می توانید از فریم ورک هایی مثل Laravel استفاده نمایید .

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

علاوه بر اینها بروزنگه داشتن نسخه php و نسخه فریم ورک نیز مهم است . سعی کنید همواره نسخه نرم افزار را بروز نگه دارید .

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


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


جمع بندی

در این مقاله سعی کردم تا نکات مهمی که برای تامیین امنیت وب سایت وجود دارد را بیان کنم.

قطعا نکات مهم زیاد دیگری نیز وجود دارد که باید آنها را هم در نظر بگیرید اما در این مقاله موارد بسیار مهم را ذکر کردم.