Lita inte på data från användare…

… eller andra system, klienter, webbtjänster eller systemsamband heller för den delen!

En av de mer populära attackerna mot webbsajter just nu är HTML-injections. Det innebär att attackeraren injecerar skadlig script- eller HTML-kod som visas på den infekterade webbsajtens sidor. Koden kan exempelvis vara ett script som hämtas från en annan sajt - som i sin tur kan stjäla cookies från intet ont anande användare eller hitta på andra hyss. Själva injeceringen sker vanligtvis via formulärinmatning, men kan även - som jag skrev i inledningen - komma  ifrån t.ex. ett annat system via ett systemsamband.

Hur skyddar man sig då mot detta? Svaret är kanska enkelt – använder du ASP.NET så använd alltid Server.HtmlEncode eller HttpUtility.HtmlEncode för att koda den data som skrivs ut från dina sidor till harmlös HTML-representation. T.ex. kodas < och > om till &lt; och &gt; vilket omöjliggör att oönskade script som ligger inbäddade i det data som skrivs ut kan exekvera i sidan.