XSS چیست؟
Cross-Site Scripting (XSS) یک آسیبپذیری امنیتی است که به مهاجم امکان میدهد اسکریپتهای سمت کلاینت (معمولا جاوا اسکریپت) را در صفحات وب قرار دهد. هنگامی که سایر کاربران صفحات آسیب دیده را بارگذاری می کنند، اسکریپت های مهاجم اجرا می شوند و مهاجم را قادر می سازد کوکی ها و سشن ها را بدزدد، محتویات صفحه وب را از طریق دستکاری DOM تغییر دهد یا مرورگر را به صفحه دیگری هدایت کند. آسیبپذیریهای XSS معمولاً زمانی اتفاق میافتند که یک برنامه یک ورودی از کاربر میگیرد و آن را بدون اعتبارسنجی به صفحهای ارسال یا در دیتابیس ذخیره میکند.
XSS چگونه کار می کند؟
xss با دستکاری یک وب سایت آسیب پذیر کدهای جاوا اسکریپت مخرب را به کاربران برگرداند. هنگامی که کد مخرب در داخل مرورگر قربانی اجرا می شود، مهاجم می تواند به طور کامل تعامل آنها با برنامه را به خطر بیندازد.
انواع حملات XSS چیست؟
سه نوع اصلی از حملات XSS عبارتند از:
- Reflected XSS، جایی که اسکریپت مخرب از درخواست جاری HTTP می آید.
- Stored XSS، جایی که اسکریپت مخرب از پایگاه داده وب سایت می آید.
- XSS مبتنی بر DOM، که در آن آسیبپذیری در کد سمت کلاینت به جای کد سمت سرور وجود دارد.
دلایل استفاده از XSS چیست؟
مهاجمی که از XSS استفاده میکند، معمولاً میتواند کارهای زیر را انجام دهد:
- جعل هویت یا خودنمایی به عنوان کاربر قربانی.
- انجام هر عملی را که کاربر قادر به انجام آن است.
- هر داده ای که کاربر می تواند به آن دسترسی داشته باشد را بخواند.
اطلاعات ورود کاربر را ضبط کند. - تخریب مجازی وب سایت را انجام دهد.
- قابلیت های تروجان را به وب سایت تزریق کند.
چگونه از حملات XSS جلوگیری کنیم؟
به طور کلی، پیشگیری موثر از آسیبپذیریهای XSS می تواند شامل اقدامات زیر باشد:
- فیلتر کردن و اعتبارسنجی ورودی های سرور
- کدگذاری داده ها در خروجی
- استفاده از هدرهای مناسب ( HTTP Rresponses Headers)
- سیاست های امنیتی محتوا (Content Security Policy)
نحوه جلوگیری از XSS در Asp
یکی از ویژگی های ActionFilter در asp این است که می تواند یک منطق را قبل و یا بعد از اجرای action اجرا کند،منظور این است که وقتی سرور یک درخواست را دریافت می کند قبل از اجرای آن درخواست (یا بعد از آن) می تواند منطق هایی را اجرا و سپس درخواست را اجرا کند.
ما در این آموزش با کمک ActionFilter ها در asp یک ActionFilter خواهیم ساخت.وظیفه ی این ActionFilter این است که قبل از اجرای درخواست پارامترهای هر درخواست را دریافت و با کمک Reflection ها در سی شارپ پراپرتی های آن را بدست آورد و سپس پراپرتی هایی که ممکن است حاوی تگ های خطرناک و مستعد حمله XSS باشند را بوسیله کتابخانه HtmlSanitizer پاکسازی و جایگزین کند.با این روش همیشه درخواست های ما حاوی اطلاعات تمیزشده خواهد بود.
سرفصل های دوره آموزش جلوگیری از XSS در asp core
- آشنایی با XSS و پیاده سازی حمله XSS در Asp Core با استفاده از تزریق تگ <script>
- پاکسازی محتویات ورودی از تگ های خطرناک و جلوگیری از XSS با استفاده از کتابخانه HtmlSanitizer در Asp Core
- پاکسازی محتویات ورودی از تگ های خطرناک با استفاده از اعتبارسنجی ورودی و جلوگیری از XSS با استفاده از کتابخانه HtmlSanitizer و FluentValidation در Asp Core
- پاکسازی خودکار محتویات ورودی از تگ های خطرناک و جلوگیری از XSS با استفاده از ActionFilter ها،Reflection ها و کتابخانه HtmlSanitizer در Asp Core
برای ثبت نظر باید در سایت ثبت نام یا ورود نمایید