Tankar och tips kring förvaltningsbar webb

Typewriter-2

Var på ett föredrag för ett tag sen som var rätt intressant. Ämnet var om att bygga förvaltningsbar och säker webb.
Några viktiga saker som jag fick med mig är bland annat hur jobbigt det kan bli med underhållet av webb när man plockar in tredjeparts ramverk som behöver uppdateras och patchas. Betänk hur många siter som använder tekniker såsom JQuery, dojo, Spring MVC, Struts mm. En del av ramverken som används ute i webbläsaren kan man gå in och (ofta) läsa vilken version som används och vilka sårbarheter som kan tänkas finns som är patchat i en senare version av ramverket. Det är ganska enkelt att hitta vilka sårbarheter som har fått patchar i senare versioner av ramverken då dessa brukar publiseras när det finns rättningar. Måste motvilligt medge att jag kanske inte alltid tänkt hela varvet runt när det gäller att införa nya ramverk och versioner av ramverk vad det innebär i längden när det gäller att driva en site och underhålla koden.

Men den viktiga frågan du själv ska ställa dig!
Hur ser det ut med produkten/siten/mm som jag testar? vilka ramverk och versioner använder vi? har vi koll på patchnivåer? har våran drift/underhållsorganisation koll på vilka ramverk och versioner vi använder? Kan jag själv testa om vi infört de nödvändiga patcharna? Vet testarna i projektet/organisationen hur man testar möjliga problempunkter?

Hur gör man då för att kolla tex vilken version av JQuery som används? Det är ganska enkelt, om du använder IE så ta upp en valfri site och tryck F12, nu kan du läsa/söka i HTML’en och i många fall kan hitta tex vilken version av jquery som används. Kör du firefox så öppna webbutvecklar verktyg (eller firebug mm) och kolla källkoden. Med dessa enkla verktyg kan du även kolla css och script på sidan.

När man kommer till backend systemen så är det inte fullt lika enkelt att finna vilka versioner och ramverk som används så här är det enklaste att helt enkelt be någon utvecklare/driftstekniker gå igenom och kolla vad som används och tillsammans får man gå igenom potentiella svagheter.

För egen del så ingår numera denna bit som en naturlig del när jag börjar arbetet med en ny webbsite/app.
* Gå igenom vilka ramverk och versioner som används
* Kolla om några ramverk öppet visar vilken version som används
* Har vi någon policy för hur man får införa nya ramverk? Skapa en sådan om den saknas
* Utifrån vilka ramverk och versioner som används gå igenom om det kommit nyare version som täpper exempelvis säkerhetsluckor

Givetvis finns det mycket mer att tänka på men det här är en bra start :-)