Skydda er mot XSS!
Robert Folkesson har nämnt hur viktigt det är att skydda sig mot XSS, vilket är ett väldigt viktigt ämne.
Jag försökte posta en kommentar till hans inlägg, men på grund av något strul med MSDN-bloggarna så verkar det inte ha kommit fram, så jag tänkte att jag skapar ett eget inlägg om det.
Det är skrämmande att så många företag inte skyddar sig mot XSS. Det var för inte allt för länge sedan ett stort antivirusföretag som släppte igenom ett javascript på detta sätt.
Vi som kör ASP.NET är dock lyckligt lottade! Först och främst så har vi fr.o.m. ASP.NET 1.1 ValidateRequest som skyddar från input via Querystrings och forms (om man inte har inaktiverat det).
Sen så finns även Microsoft Anti-Cross Site Scripting Library (lagom långt namn ;-)) som gör det möjligt att ge ett ännu starkare skydd än att bara köra Server.HtmlEncode().
ValidateRequest och annat:
http://msdn.microsoft.com/en-us/library/ms998274.aspx
Microsoft Anti-Cross Site Scripting Library v1.5:
http://www.microsoft.com/downloads/details.aspx?FamilyId=EFB9C819-53FF-4F82-BFAF-E11625130C25&displaylang=en
Eller betan av v3.0 (vad hände med 2.0?):
http://www.microsoft.com/downloads/details.aspx?familyid=051EE83C-5CCF-48ED-8463-02F56A6BFC09&displaylang=en
Dessutom så kan vi sitta ännu säkrare iom Internet Explorer 8, då det har inbyggt skydd mott XSS typ 1:
http://blogs.msdn.com/ie/archive/2008/07/01/ie8-security-part-iv-the-xss-filter.aspx
Det som dock ingen webbläsare kan skydda sig mot är XSS typ 2, och där är det verkligen viktigt att vi som är utvecklare ser till att alltid skydda oss mot det så gott det går. Med tanke på hur vanligt det är med olika typer av CMS så är det inte alltid lätt att skydda exakt allt, men ofta så räcker det med att blockera script-taggar för att slippa de värsta problemen.
När du skriver en sida så lita aldrig på att information som kommer från användarna är bra information. Det är otroligt viktigt att skydda sig mot detta!
Kudos till Robert som tog upp detta!