2010-06-28 20 views
7

.net 4 ile <%:%> gibi bir <% =% komut dosyası kasa var, ama bir html kodlaması var. İnsanlar bu yeni söz diziminin kullanımını teşvik ediyorlar.<%: %> vs Microsoft karşıtı XSS ​​kütüphanesi

Soruma göre, <%:%> XSS'e karşı daha iyi mi yoksa Microsoft Anti XSS kitaplığını mı kullanıyorsunuz?

Bir Microsoft güvenlik sorumlusu, bir keresinde çok iyi korunmadığı ve her zaman Anti XSS kitaplığını (veya başka bir kitaplığı) kullanmam gerektiği için HTML Encode'u kullanmamamı söyledi. Bu hala <%:%> ile doğru mu? Ya da <%:%> uygulamasının insanları XSS ​​gibi insanlar tarafından korunduğunu bildiğinden emin olarak kullanabilir miyim?

cevap

9

HttpUtility.HtmlEncode potansiyel için kapıyı aralık bırakan kara liste (istisnalar ilkesi) kodlama yaklaşımı kullanır Gelecekte yeni keşfedilen keşifler. Anti-XSS library (Web Koruması Kütüphanesi olarak da bilinir ve SQL enjeksiyonunu azaltmak için kod içerir), kapıyı biraz daha kapatan ve daha iyi güvenlik sağlaması için beyaz liste yaklaşımını (dahil etme ilkesi) kullanır.

<%: ... %>, <%= Server.HtmlEncode(string) %> için bir kısayoldur ve bu nedenle uygulamanızda kullanılan kodlayıcının güvenliğini sağlar.

Size, yeni <%: ... %> sözdizimi ile istediğiniz herhangi kodlayıcı kullanabilir ve Phil Haack hooking up the Anti-Xss library as the default encoder beğendiğiniz bir yayın vardır. Şu anda Anti-XSS kitaplığının 3.1 çalıştırılması için orta düzeyde bir güvene ihtiyaç duyduğunu unutmayın; bu, gelecekteki bir sürüm için ele alınmaktadır.

+0

<%: %>'un farklı bir kodlayıcıya takılmasıyla ilgili olduğunu bilmiyordum. Bu oldukça havalı. – dtc

1

Yeni sözdizimi yalnızca HTML'deki ham metin içeriğinden kurtulmak için kullanılmalıdır. EDIT: ve özellikleri.

için nitelikler, JavaScript ve diğer bağlamlarda, hala Anti-XSS kütüphanesini kullanmanız gereken

+0

Anti-XSS kitaplığı, HTML ve öznitelik kodlaması için daha güvenli kodlama sağlar – orip

İlgili konular