İstemcide zararlı olabilecek bir değer Request.Form algılandı hatası (çözüm)

System.Web.HttpRequestValidationException: İstemcide zararlı olabilecek bir değer Request.Form algılandı.

System.Web.HttpRequestValidationException: A potentially dangerous Request.Form value was detected from the client.

Gibi bir hata alıyor iseniz web form ve mvc için çözümler aşağıdaki gibi;

ASP.NET MVC için çözüm;

Şeklindeki hatayı [AllowHtml] kodu ile çözebilirsiniz. Kodu model sınıfınızda ilgili alanın üstüne eklemeniz yeterli.

using System.Web.Mvc; 

public partial class tUrunler
{
  public int tUrunID{ get; set; }

  [AllowHtml]
  public string UrunBody { get; set; }
}


ASP.NET Web Form İçin Çözüm;

web.config dosyasına aşağıdakileri ekleyin.

<system.web>
    <compilation debug="true" targetFramework="4.0" />
    <httpRuntime requestValidationMode="2.0" />
</system.web>

Daha sonra sayfanın Page yönergesine ValidateRequest="false" bildirimini ekleyin.

<%@ Page Language="C#" ValidateRequest="false" %>


ASHX
(HttpHandler) ile ajax işlmeleri yapıyor ve bu hatayı alıyor iseniz aşağıdaki yöntemi tavsiye ederim. "Unvalidated" ile devre dışıda bırakabiliriz.

        var requestForm = context.Request.Unvalidated.Form;

        tUrunler otUrunler = new tUrunler(); 
        otUrunler.Kategori = int.Parse(requestForm["ddlKategori"]);
        otUrunler.UrunAdi= requestForm["txtUrunAdi"];
        otUrunler.UrunAciklama = requestForm["txtBody"];

Bu özellik kapatıldığında/devre dışı bırakıldığında XSS (Cross Site Scripting) güvenlik açıklarına karşı sayfamız/projemiz açık olacaktır.. genelde admin panelinde devre dışı bırakız. aman haa bilinçli kapatın diyoruz!..