جلوگیری از حملات XSS با استفاده از Anti XSS

سه شنبه 11 آذر 1393

در این مقاله می آموزید که چگونه با استفاده از کتابخانه AntiXss مایکروسافت می توانیم از حملات XSS در MVC جلوگیری کنیم.

جلوگیری از حملات  XSS  با استفاده از  Anti XSS

در این مقاله می آموزید که چگونه با استفاده از کتابخانه  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 ) :

MVC3.jpg

روش دوم ( مرحله Controller ) :

MVC4.jpg

با استفاده از این روش ها error  قبلی بر طرف می شود اما هنوز یک مشکل وجود دارد و آن هم این است که به صورت پیش فرض Razor ، ، کد HTML  را  encode  میکند.

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

 @Html.Raw(item.MessageText)

حالا ببینید که یک کاربر چگونه می تواند با استفاده از پیام  ،  script مخرب ایجاد کند.

بنابر این هر زمان که اجازه دادید HTML  نوشته شود باید شدیدا مراقب این چیز ها باشید.برای این کار در اینجا مایکروسافت با استفاده از کتابخانه  AntiXSS  خود به کمک ما خواهد آمد.

NuGet  را باز کنید ، بسته  AntiXss  را پیدا کنید و آن را نصب کنید.

MVC9.jpg

در پروژه در فولدر Refrences  دو کتابخانه ی AntiXssLibrary  و HtmlSantizationLibrary  به پروژه تان اضافه شده است.

MVC10.jpg

حالا فقط با یک تغییر در کنترلر ، پیشگیری از  XSS  فعال خواهد شد.

MVC11.jpg

و زمانی که  هر کاربری سعی کند تا در پیامش script  مخرب تولید کند ، به طور اتوماتیک از آن رشته خارج می شود.

بنابر این در این مقاله آموختیم که چگونه با استفاه از  کتابخانه  AntiXSS  از حملات  XSS  جلوگیری کنیم.

 

صبا ذاکر

نویسنده 18 مقاله در برنامه نویسان

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

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید