Jak to się mogło stać, że jeszcze o tym nie napisałem? Pora nadrobić zaległości. Microsoft udostępnił już jakiś czas temu bibliotekę pod wiele mówiącą nazwą Microsoft Anti-Cross Site Scripting Library. Aktualna wersja to 1.5, dostępna jest do pobrania tutaj.
Microsoft Anti-Cross Site Scripting Library
Co ta biblioteka robi? Sama z siebie - nic. To nie działa w ten sposób, że instaluje się bibliotekę na serwerze i wszystkie aplikacje (no dobrze, te napisane w ASP.NET) nagle stają się automatycznie odporne na cross-site scripting. Biblioteka ta ułatwia jednak życie programistom. Wielokrotnie pisałem o tym, że dane muszą być encodowane, przy czym zastosowany encoding jest zależny od kontekstu (interpretera), w którym zostaną one użyte. Inne reguły powinny być zastosowane w przypadku "czystego" HTML, inne, gdy dane wstawiane są w skrypt JavaScript, jeszcze inne, gdy budowany jest URL. Biblioteka Microsoft.Security.Application.AntiXss udostępnia funkcje:
- HtmlAttributeEncode,
- HtmlEncode,
- JavaScriptEncode,
- UrlEncode,
- VisualBasicScriptEncode,
- XmlAttributeEncode,
- XmlEncode,
Wystarczy zawołać odpowiednią funkcję w odpowiednim momencie, co nie koniecznie musi być takie oczywiste.
Tomek podrzucił mi informację, że Anti-XSS Library v3.0 w końcu osiągnęła status RTM. Czym jest Anti-XSS Library już kiedyś pisałem.
Przesłany: Jul 15, 22:42