همانطور که حتما مستحضر می باشید، داده هایی که توسط کاربران وب سایت وارد می
شوند، در صورتی که نیاز باشد در صفحات وب نمایش داده شوند، حتما باید Encode شوند
تا وب سایت در مقابل حملاتی از نوع XSS مقاوم تر شود.
تا قبل از ارائه نسخه ASP.NET 4.0، برنامه نویسان معمولا از روش های
HttpUtility.HtmlEncode یا Server.HtmlEncode برای Encode نمودن داده های کاربر
استفاده می کردند.
به طور مثال فرض کنید تابع GetAddress آدرس محل سکونت کاربر را بر می گرداند و
ما قصد داریم این آدرس را در صفحه نمایش دهید.
public string GetAddress()
{
return "This should be my address but not!<script>... I am bad user</script>";
}
نحوه نمایش:
<%= Server.HtmlEncode(GetAddress()) %>
با استفاده از این روش می تواند اطمینان حاصل کرد که اگر کاربر به جای آدرس
واقعی خود، اسکریپت های خطرناک وارد نموده باشد، آسیبی وب سایت را تهدید نمی نماید
زیرا پس از اجرای تابع HtmlEncode دیگر رشته مورد نظر قابلیت اجرا در صفحه نخواهد
داشت و صرفا قابل نمایش خواهد بود.
اما در ASP.NET 4.0 امکان جدیدی معرفی شده است که انجام این عمل را ساده تر می
نماید. با استفاده از کاراکتر ":" به جای کاراکتر "=" خروجی تابع به شکل خودکار
Encode می شود و دیگر نیازی به فراخوانی متد HtmlEncode نخواهد بود.
عملکرد قطعه کد زیر دقیقا همانند قطعه کد قبلی می باشد.