msHOWTO

27 Mayıs 2013 Pazartesi

"A potentially dangerous Request.Form value was detected from the client" Hatası ve Çözümleri

Merhaba arkadaşlar. Bugün proje geliştirirken aldığım hatanın sebebini ve çözümlerini sizlerle paylaşacağım. Hatanın sebebi web projenizde herhangi bir sayfanızda herhangi bir yerinden girdi olarak HTML girdisi alınıyorsa direk olarak bu hatayı fırlatıyor. Asp.Net kendisi bu şekilde bir nebze de olsa güvenlik sağlamaya çalışıyor. Fakat bazen öyle durumlar oluyor ki kullanıcan HTML içerikli girdi almak durumunda kalıyorsunuz. Bu durumlar da yapılması gereken ilk şey farklı bir editör kullanmak. Örneğin CKEditor gibi. Fakat benim şuan geliştirdiğim uygulamda kullanıcıdan Google Map embed linki almam gerekiyor. Bunun için CkEditörü sayfaya import edip yüklenmesini sağlayıp sayfayı yavaşlatmak saçma ve gereksiz olur. Bu nedenle klasik ve düz TextBox kullanıyorum. Bu durumda da html girdi olduğu için direk bu hatayı fırlatıyordu. Bu sorunun birden fazla çözümü mevcuttur .

1-) Web.config dosyamıza <system.web> tag ının altına <pages validateRequest="false"/> tag ı eklenir.

2-) Bu şekilde veri girdisi sadece o page de olacaksa daha özele inip , ilgili page in <%@Page tagına  validateRequest="false" eklenir.

3-)Eğer bunları yapıp hala aynı hatayı alıyorsanız muhtemelen Visual Studio 2010 ve 4.0 ile projenizi geliştiriyorsunuz demektir. Bu durumda ise Web.config dosyamıza <system.web> tag ının altına   <httpRuntime requestValidationMode="2.0" /> tag ı eklenir.

Umarım faydalı olmuştur arkadaşlar. Bir sonraki makalemde görüşmek üzere.

2 yorum: