Säkerhetshål på hd.se

Javascript rakt in på hemsidan är dum ide.

Igår kom jag in på ett inlägg hos Mindpark där Joakim beskrev att Helsingborgs Dagblad integrerat en widget som hämtar recept från hittarecept.se Nyfiken som jag var testade jag den lite snabbt och insåg att den var nog lite väl bristfälligt.

Som alla utvecklare vet ska man validera indata som kommer från användare. Detta saknades helt och hållet, ett av de mest grundläggande säkerhetsfel man över huvud taget kan göra på en webbsida. Sidan var alltså helt sårbar för både phising och cross site scripting, inget bra alls.

22:39 skickade jag ett e-postmeddelande till Christer Klingborg, samordnande IT-chef för Helsingborgs Dagblad AB och Nya Wermlands-Tidningens AB, där jag berättade om bristen. Hade inga högre förväntningar eftersom jag gjort likadant när jag fann ett säkerhetshål gp.se 30 minuter senare fick jag ett svar.

Tack för ditt mail!
Jag skall ta upp saken med de som är ansvariga för HD:s webbsidor!

Helt otroligt tänkte jag, sjukt snabb respons sent på kvällen och dessutom ett tack, något Göteborgs-Posten inte gjorde. Dagen efter fick jag ännu ett e-postmeddelande, denna gång av den teknisk ansvariga för hemsidan (antar jag) där han berättade att hittarecept.se kontaktats och att de skulle lösa felet.

En kort stund senare fick jag ännu ett e-postmeddelande om att felet var löst och ännu ett tack. Sist men inte minst blev jag kontaktad av Christer som återigen tackade och skulle skicka en liten uppskattning för hjälpen. Nu handlar inte mitt inlägg om att jag fick en sak av hd.se och inte gp.se utan snarare om bemötandet.

Nu önskar jag lycka till med Sveriges snyggaste widget och stor eloge till berörda hos hd.se

Tågresenärer hos SJ blir lurade

Tågbiljetter som säljs hos Blocket

Idag stötte jag på ett problem som inte bara drabbar mig utan poteniellt alla som köper sin biljett i 2:a hand på till exempel Blocket och Tradera.

Problemet blir när en medlem i SJ Prio köper en tågresa med sitt medlemskort och sedan säljer vidare denna biljett. Kollar man på biljetten står det vem som bokade biljetten, något som väckte misstankar hos mig. Har de börjat med personliga biljetter?

Flera dagstidningar har tidigare skrivit om problemen med andrahansdförsäljningen av deras billigare biljetter och SJ har svarat på att de ska införa personliga biljetter, när är dock oklart.

För att reda ut denna fråga ringde jag SJ 2 gånger.

Samtal 1 (kundtjänst)
Säljaren säger att biljetten är personlig och att man måste uppvisa legitimation samt medlemskort.

Samtal 2 – del 1 (försäljning)
Säljaren upplyser samma sak. Denna gång ifrågasätter jag dock detta och vill veta vart det står. Efter lite läsande i 2 olika avtal ber säljaren mig att prata med kundservice och kopplar vidare.

Samtal 2 – del 2 (kundtjänst)
Personen på kundservice berättar även här att biljetten är personlig. Även denna gång ifrågasätter jag detta och vill veta vart i deras avtal detta står. 50minuter senare(!) läser han upp ”SJ Prio Medlemsregler”, under punkt 4.2 följande:

Med personliga inköp av SJs produkter och tjänster menas att medlemmen endast kan samla poäng på t.ex. egna SJ tågresor (dvs. de tågresor som medlemmen faktiskt själv nyttjar). En medlem kan inte samla poäng på resor som denne bokar för andra.

Efter att ha läst ovanstående utdrag uppfattar jag det som att en medlem i SJ Prio inte kan samla poäng på resor andra gör, resor som medlemmen själv inte nyttjar som det så fint heter.

Problemet
Adam köper en biljett hos SJ med sitt Prio-kort.
Adam säljer biljetten på Tradera/Blocket/Whatever till Bertil.
Får Bertil åka på biljetten?

Personligen ser jag inte vart i avtalet det står att biljetten är personlig. Det som står är att man inte får samla poäng på andras resor, inte att en biljett är personlig. Mitt resonemang verkar logiskt då det ligger under kategorin ”Att samla poäng”.

Den reglerar bara bonuspoängen.

Jag nöjde mig inte här utan bad de kolla upp detta närmare, så jag väntar ivrigt på att SJ Prio Medlemsservice ska återkomma till mig. Jag fattar inte hur de kan tolka texten till att Bertil inte ska få åka på biljetten utan att den är personlig när det står tydligt att det gäller poängen.

Vad tycker ni, är det Adam eller Bertil som har gjort fel och borde drabbas?
Om Bertil drabbas vet jag inte hur många som drabbas av detta då det dagligen säljs flertalet biljetter i andra hand. Skriv avtal som era resenärer förstår och inte som bara era jurister kan tyda.

Som vi alla vet är SJ kompetenta. Även jag har faktiskt jobbat hos dom och kan intyga detta.

Göteborgs-Posten sårbara för cross site scripting

Igår lanserade Göteborgs-Posten deras nya webb-tv, en lösning de valt att läsa in genom en iframe.

Parametrarna till denna iframe sätts med vanliga get-parametrar, till exempel vilken sida som ska läsas in i denna iframe, dess höjd och bredd. Smart…eller inte.

Varenda person som någonsin sysslat med webbprogammering borde få upp stora röda varningsljus nu. De måste väl kontrollera dessa parametrar man kan skicka in?

Gjorde ett litet oskyldigt test där jag ändrade sökvägen till webbsidan som iframe:n läste in till ”</iframe><bonclick=”alert(‘hej’)”>hej</b>

Ops, nu avslutade jag visst iframe-taggen och kan skicka in vilken skadlig kod jag vill med javascript.

Alla kan göra misstag, även om detta var lite i största laget så jag skickar ett e-postmeddelande till webmaster och påpekar deras brist. Går lite i förhoppning om att åtminstone få ett litet tack.

Nähä, inte ens ett litet tack var man värd. Undra om de ens har tätat deras brister?

Som jag skrev i början så skickade de även med höjd och bredd på deras iframe som visas. Klantig som jag var så skrev jag bara med deras parameter som läser in sökvägen, hade jag vetat att de inte kunde något om säkerhet på deras utvecklingsavdelning hade jag givetvis även skrivit att de även borde kolla övrig indata innan de skriver ut den på deras hemsida 🙂

Har de tur kanske de får gratis medieutrymme precis som Aftonbladet fick när deras sida blev hackad.
All publicitet är ju bra?

Min kollega skriver lite mer tekniskt om detta på hans blogg.

Läs även om säkerhetshålet på hd.se och hur snabbt det löstes.