Tags: | Categories: Security, SSS (FAQ), Web Uygulaması Posted by okutbay on 17.08.2009 12:29 | Yorumlar (0)

If you are using Anti XSS Library, you've noticed that it doesn't have any decoding methods. It is because library aims preventing XSS attacks. If you want to decode your content you can use Server.HtmlDecode method. Do not re-write the code that already written. :)

 

Cross Site Scription

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: , | Categories: Tanıtım, Web Uygulaması, Library, Security Posted by okutbay on 06.08.2009 22:57 | Yorumlar (0)

Infact Web applications are HTML forms and lives at the client side. This HTML forms make visits to their parents who lives at the server side. While they are visiting their parents they bring a lot of data input from client side. While they are leaving for home takes a lot of output data.

If you let all the input in without checking and filtering and send back to client, you can be a victom of XSS.

Microsoft released an Anti XSS Library. This library is solid and you can use for all input and output that that comes from unsecures resources.

You can find this library here

1 kişi tarafından 5.0 olarak değerlendirildi

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Tags: , , , , , , , | Categories: Hata, Web Uygulaması Posted by okutbay on 18.06.2009 14:47 | Yorumlar (0)

İş yerinde geliştirmekte olduğumuz projelerde şimdiye kadar MVC Framework Preview 3 kullanmaktaydık. ASP.NET ten farklı çalışma mekanizması nedeniyle yukardaki hatayı sık sık alır ve  ValidateRequest = false yapmamıza rağmen sorunu aşamazdık. Çünkü post edilen bilgi önce kontroller a düşmekte ve exception oluşmaktaydı.

Peki temel olarak bu hatanın nedei neydi. Önce bunu bir hatırlayalım. 

ASP.NET kullanan yazılımcılar form alanlarından gelebilecek zararlı kodlara karşı daha fazla korunmaya sahiptirler. Yapılabilecek XSS (Cross site script) saldırılarını önlemek yapılan tüm istekler bir geçerlilik kontrolü (validation) işleminden geçer. Bu işlemde temel olarak script bloklarını başlatan ve bitiren taglerde yer alan < ve > işaretleri aranır. Bulunduğu zaman da "System.Web.HttpRequestValidationException" oluşturulur.

Bu sorunu geçiştirmek için sayfa seviyesinde ya da uygulama seviyesinde (ki bu hiç mi hiç tavsiye edilmez.) Geçerlilik kontrolünü kapatabilirsiniz. Bu durumda dış kaynaklardan gelen tüm girdileri zararlı olabilecek metinlere, karakterlere karşı kontrol etmeniz ve filtrelemeniz gerekmektedir.

Bizim durumumuzda ise hiçbir şekilde bu geçerlilik kontrolü geçiştirilememekteydi. Ta ki MVC 1.0  çıkana kadar. Aslında bu özellik Preview 4 ile birlikte gelmesine rağmen biz 3 den direkt olarak MVC 1.0 a atladığımızdan burada farkına varabildik.

Bu yenilik sayesinde controller class tanımımız ya da herhangi bir controller action metod tanımımız için "istek geçerlilik kontrolü"nü devre dışı bırakabiliyoruz.

Şöyle ki: 

    1 [ValidateInput(false)]

Bu öznitelik (attribute) sayesinde konulduğu yere göre ilgili controller sınıfının tüm metodları ya da sadece belirli action metodları için bu özellik iptal edilebilmekte.

sınıf Seviyesinde kullanım 

    1 [ValidateInput(false)]

    2 public class BilgilerController : Controller

    3 {

    4 }

 Controller Action seviyesinde kullanım 

    1 [ValidateInput(false)]

    2 public ActionResult BilgilerFormIslem()

    3 {

    4     return View("abc");

    5 }

Böylece ilgili sayfalarda HTML kod kabul eden editör vb. kontroller kullanabiliyoruz. Tabi tekrar hatırlatalım. Bu durumda gelen içeriğin güvenli olup olmadığının denetlenmesi ya da filtrelenmesi yazılımcı tarafından gerçekleştirilmek zorunda...

Kolay gelsin... 

2 kişi tarafından 5.0 olarak değerlendirildi

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5