Extensible HTML, URL, and HTTP Header Encoding
02.01.2010 16:53
Adres çubuğunda QueryString ile dğer taşınırken boşluk karakterinin %20 gibi bir ifadeye encode edildiğini farketmişizdir. Bu ve benzeri encode ve decode işlemleri temel gereksinimi güvenlik kaynaklı ihtiyaçlardan kaynaklanmaktadır. Örneğin istemci tarafında çalıştırılabilir bir kod olan JavaScript kodunu kullanıcıdan herhangi bir kontrole tabi tutmadan alıp veritabanında saklar ve tekrar istemciye gönderirsek <script>location.href = ‘http://www.foo.com’</script> gibi bir ifade sitemizin foo.com a yönlenmesine sebebiyet verecektir.
Basit bir XSS atağı olan bu yöntemi engellemek için farklı encoding mevcut encoding işlemleri yeterli olacaktır. Ancak şirket politikası olarak kengi encoding stratejinizi uygulama yoluna gitmek istiyorsanız ASP.NET 4.0 da bu artık mümkün. System.Web.Util.HttpEncoder sınıfından miraz alarak oluşturacağınız yeni encoder stratejinizi web.config te bulunan httpRuntime elemtninin encoderType özelliğinde belirtmeniz yeterli olacaktır.
<httpRuntime encoderType="Samples.MyCustomEncoder, Samples" />
Takımınızın bir bölümü kişiselleştirilmiş encode sınıfı nı geliştirirken diğer takım üyeleri alışkanlıklarını bozmayıp klasik Encode fonksiyonlarını kullanmaya devam edebilmektedirler. Tüm encode ve decode istekleri kişiselleştirilmiş sınıfınıza gönderilecektir.
Bu yazı 243 kere okundu.



