Janoz schreef op woensdag 24 maart 2010 @ 18:10:
Wat een gevolg is van de grote hoeveelheid prutsers die eigenlijk niet helemaal weten waar ze mee bezig zijn. Combineer dat met dat veel van die 'meest gebruikte web apps' vaak uit de hand gelopen hobby projecten zijn.
Op zich waar, maar het probleem is ook dat dit soort issues lang na de ontwikkeling van HTTP en HTML ontstaan zijn. Er is helemaal geen rekening gehouden met privacy, 3rd party cookies, cross-site scripting, cross-site request forgery, et cetera bij het ontwerpen van essentiële protocollen en formaten en daardoor zitten we nu met de gebakken peren. Het gebruik van een
nonce is ook een soort hack eigenlijk, om het probleem op te lossen dat bepaalde resources niet van buitenaf gerefereerd mogen worden.
Voor de concrete uitlogknop heb je nu eigenlijk geen goede opties. Anchors leveren altijd GET linkjes op. Voor een POST request zul je een form moeten bouwen, wat betekent dat je ofwel een form button moet introduceren (wat lelijk is, hoewel je die nog wel kunt stylen), of je moet een plaatje gebruiken, want een plaatje kan wél een form submit opleveren, maar die schalen niet goed mee. Het laatste alternatief is dan de boel met JavaScript aan elkaar te hangen, maar dan nog moet je eigenlijk een non-JavaScript alternatief ernaast implementeren.
Feit is dus dat de mogelijkheden die er zijn nogal beperkt en willekeurig zijn. Dat is niet de schuld van amateuristische webdesigners. Of kun je me uitleggen waarom geanchorde tekst alleen maar naar resources mag verwijzen waarop GET requests gedaan worden, terwijl plaatjes (door middel van image buttons) wel POST requests tot gevolg kunnen hebben?
edit:
Trouwens, nu we het toch over "prutsers die niet weten waar ze mee bezig zijn" (jouw woorden

) hebben: Tweakers.net doet dit ook fout. Uitloggen moet weliswaar met een sessie-id, maar een reset van de RSS key op dezelfde pagina kan wél met een cross-site HTTP request.
Proof of concept:
http://hell.student.utwen...10-03-24-reset-rssid.html (Klik deze link
niet als je een RSS reader gebruikt en geen zin hebt om die opnieuw in te stellen!) Die redirect kan natuurlijk ook in een iframe of iets dergelijks waardoor de gebruiker er niets van ziet.
Dus ofwel professionele webdevelopers maken dit soort fouten ook, of Tweakers.net zijn een stelletje prutz0rs.

[Voor 16% gewijzigd door Soultaker op 24-03-2010 18:56]