Hepimizin bildiği gibi, XSS saldırıları tehlikelidir ve çekilmesi gerçekten kolaydır . ASP.NET MVC'nin yaptığı gibi çeşitli çerçeveler HTML kodlamayı kolaylaştırır:
<%= Html.Encode("string"); %>
Ancak, müşteriniz içeriklerini doğrudan bir Microsoft Word belgesinden yükleyebilmesini isterse ne olur?
İşte senaryo: İnsanlar Microsoft Word'deki içeriği kopyalayıp bir WYSIWYG düzenleyicisine (bu durumda tinyMCE ) yapıştırabilir ve sonra bu bilgiler bir web sayfasına gönderilebilir.
Web sitesi herkese açık, ancak yalnızca bu kuruluşun üyeleri bir web sayfasına bilgi gönderme erişimine sahip olacak.
Bu gereksinimleri nasıl güvenli bir şekilde ele alabilirim? Şu anda müşterinin gönderdiği mesajlar üzerinde hiçbir kontrol yapılmadı (yalnızca 'güvenilir' kullanıcılar gönderebildiğinden), ancak bundan özellikle memnun değilim ve bir hesabın saldırıya uğraması durumunda daha fazla kilitlemek istiyorum.
Bu gereksinimleri karşıladığının farkında olduğum tek kavramsal yöntem HTML etiketlerini beyaz listeye eklemek ve bunların geçmesine izin vermektir . Başka bir yol var mı? Değilse, Kullanıcının Veritabanında herhangi bir biçimde veri depolamasına izin vermenin güvenli bir yolu nedir, ancak yalnızca doğru etiketlenmiş ve bozuk etiketlerden arındırılmış olarak görüntülenmesi nedir?