جلوگیری از حملات XSS با استفاده از Anti XSS
سه شنبه 11 آذر 1393در این مقاله می آموزید که چگونه با استفاده از کتابخانه AntiXss مایکروسافت می توانیم از حملات XSS در MVC جلوگیری کنیم.
در این مقاله می آموزید که چگونه با استفاده از کتابخانه AntiXss مایکروسافت می توانیم از حملات XSS در MVC جلوگیری کنیم.
به شما مثالی از یک کاربر نشان می دهیم که HTML Markup مخربی را با استفاده از یک پیغام ، submit میکند و بعد از آن پیغام های آزار دهنده شروع به آمدن می کنند.در این حالت به شما نشان می دهیم که چطور با استفاده از AntiXSS جلوی آنها را بگیرید.
کاری که می کنیم اینگونه است:
اما به دلیل استفاده از HTML Markup در پیاممان ، MVC در خواست ما را با error زیر رد میکند :
A potentially dangerous Request.Form value was detected from the client (MessageText="Hello <b>Admin</b>").
به صورت پیش فرض MVC چنین درخواست هایی را که شامل کد HTML باشد ، به دلیل جلوگیری از حملات Cross-Site Scripting رد می کند، این عمل سودمند باعث می شود که اگر شما فراموش کردید روی جلوگیری از XSS کار کنید، باز هم مشکلی برایتان ایجاد نشود.
اگر می خواهید به کاربر اجازه دهید تا بتواند از کد HTML همراه با پیامش استفاده کند ، می توانید به یکی از دو روش زیر عمل کنید:
روش اول( مرحله Model ) :
روش دوم ( مرحله Controller ) :
با استفاده از این روش ها error قبلی بر طرف می شود اما هنوز یک مشکل وجود دارد و آن هم این است که به صورت پیش فرض Razor ، ، کد HTML را encode میکند.
برای حل این مشکل می توانید از این تکه کد استفاده نمایید :
@Html.Raw(item.MessageText)
حالا ببینید که یک کاربر چگونه می تواند با استفاده از پیام ، script مخرب ایجاد کند.
بنابر این هر زمان که اجازه دادید HTML نوشته شود باید شدیدا مراقب این چیز ها باشید.برای این کار در اینجا مایکروسافت با استفاده از کتابخانه AntiXSS خود به کمک ما خواهد آمد.
NuGet را باز کنید ، بسته AntiXss را پیدا کنید و آن را نصب کنید.
در پروژه در فولدر Refrences دو کتابخانه ی AntiXssLibrary و HtmlSantizationLibrary به پروژه تان اضافه شده است.
حالا فقط با یک تغییر در کنترلر ، پیشگیری از XSS فعال خواهد شد.
و زمانی که هر کاربری سعی کند تا در پیامش script مخرب تولید کند ، به طور اتوماتیک از آن رشته خارج می شود.
بنابر این در این مقاله آموختیم که چگونه با استفاه از کتابخانه AntiXSS از حملات XSS جلوگیری کنیم.
- ASP.net MVC
- 4k بازدید
- 18 تشکر