fredag 9 juli 2010

Douglas Crockford om XSS

Jag tänkte först skriva en summering av den fantastiska OWASP AppSec-konferensen vi anordnade tillsammans för två veckor sen. Men varför göra det när man istället är sugen på att kolla några webcasts?

Douglas Crockford på vår sida
Via Twitter fick jag tips om en väldigt intressant presentation från jsconf i Washington DC i april. Det är Douglas Crockford, författare till "JavaScript: The Good Parts" och en av Yahoos tyngsta namn som ägnar 50 % av sin talartid åt cross-site scripting (XSS)! Jag kan inte nog understryka betydelsen av att en guru bland utvecklare ställer sig upp och pratar om problem och lösningar inom säkerhet.

Börja titta vid 20:50 om ni vill hoppa över de mer generella JavaScript-bitarna (historik, framtid, js kontra DOM:en osv)



Några citat
Några intressanta citat ur presentationen:

"Possibly the only thing we should be considering is security."

"The biggest problem in the browser platform is it's susceptibility to XSS attacks."

"Solving the XSS problem should be our #1 priority"

"HTML5 is a big step in the wrong direction"

Frågan om säkerhet i HTML5
Jag får fler och fler frågor om säkerhet i HTML5. Därtill har jag påbörjat minst två blogginlägg om just det ämnet men stupat på komplexitet och omfång. Det blir för mycket hur jag än gör. Just det berör Crockford när han säger att vi borde avbryta utvecklingen av HTML5 och börja om(!).

Han menar att XSS är det främsta problemet för en blomstrande webb med mashups och enterprise-tjänster. HTML5 gör XSS-problemet värre på tre sätt:
  • HTML5 är väldigt komplicerat. Och komplexitet står som bekant i motsats till säkerhet (och robusthet, och testbarhet, och förvaltningsbarhet, och ...)
  • HTML5 ger attackerare nya, väldigt kraftfulla verktyg inklusive access till lokal databas på klientsidan
  • HTML5 kommer ta lång tid att färdigställa. Måste lösningen på XSS vänta till HTML6?

1 kommentar:

Peter Magnusson sa...

Nästan all XSS är JavaScript injection i HTML body via script-tag eller onEvent-handlers. Att helt förbjuda JS (och andra aktiva komponenter) i bodyn och kräva att handlers sätts i headern (via jQuery().ready eller dylikt) skulle göra de flesta XSS sårbarheter till ganska lama ankor. Kanske 80% av alla XSS sårbarheter skulle begränsas till att bara kunna förstöra utseende / textinnehåll med en så enkel regel.