Volgens mij is er wat mis met de implementatie van javascript cookies in IE wanneer geen expliciet domein wordt aangegeven, dus zoiets:
Dit gebruiken wij zowel op de frontpage als hier op het forum. Nu blijkt dat dergelijke cookies geset op de frontpage ook gewoon uitleesbaar zijn hier op het forum (subdomein), maar enkel in Internet Explorer.
Volgens mij is dat een violation van RFC2965 omdat een cookie geset zonder expliciet domain geset wordt op request-host zonder leading dot. Een cookie op onze frontpage zou dus geset worden op domain 'tweakers.net'. Als je dan vervolgens hier naar het forum gaat dan blijkt in bijvoorbeeld Firefox die cookie niet uitleesbaar te zijn maar in IE wel, dit terwijl 'tweakers.net' toch niet domain-matched tegenover 'gathering.tweakers.net'.
Als ik op de frontpage de cookie een expliciet domain opgeef in de vorm van '.tweakers.net' (note de leading dot) dan is de cookie zowel in IE als in Firefox uitleesbaar op het forum, hetgeen ook correct is want '.tweakers.net' domain-matched wel met 'gathering.tweakers.net'.
Ik heb overigens al uitgesloten dat het aan de document.domain='tweakers.net' ligt die wij hier op het forum gebruiken voor cross-subdomein scripting.
Uiteraard geeft dit applicatie-problemen in het geval dat op de frontpage dezelfde cookie-names worden gebruikt. IE geeft cookies terug in document.cookie op chronologische volgorde, maar een cookie initieel geset op 'tweakers.net' is niet te overschrijven door de javascript op 'gathering.tweakers.net' (dat genereerd een nieuwe cookie), en aangezien je verder niet weet van welk domein een cookie afkomstig is via document.cookie is hier vrij weinig aan te doen.
Daarnaast vraag ik mij af of dit niet een serieuse security-issue is (ook al valt het binnen hetzelfde domein), en of dit al niet bekend is (ik kon zo gauw niets vinden eigenlijk).
JavaScript:
1
2
3
4
| function SetCookie(sName, sValue) { document.cookie = sName + '=' + escape(sValue) + '; expires=Fri, 31 Dec 2099 23:59:59 GMT; path=/'; } |
Dit gebruiken wij zowel op de frontpage als hier op het forum. Nu blijkt dat dergelijke cookies geset op de frontpage ook gewoon uitleesbaar zijn hier op het forum (subdomein), maar enkel in Internet Explorer.
Volgens mij is dat een violation van RFC2965 omdat een cookie geset zonder expliciet domain geset wordt op request-host zonder leading dot. Een cookie op onze frontpage zou dus geset worden op domain 'tweakers.net'. Als je dan vervolgens hier naar het forum gaat dan blijkt in bijvoorbeeld Firefox die cookie niet uitleesbaar te zijn maar in IE wel, dit terwijl 'tweakers.net' toch niet domain-matched tegenover 'gathering.tweakers.net'.
Als ik op de frontpage de cookie een expliciet domain opgeef in de vorm van '.tweakers.net' (note de leading dot) dan is de cookie zowel in IE als in Firefox uitleesbaar op het forum, hetgeen ook correct is want '.tweakers.net' domain-matched wel met 'gathering.tweakers.net'.
Ik heb overigens al uitgesloten dat het aan de document.domain='tweakers.net' ligt die wij hier op het forum gebruiken voor cross-subdomein scripting.
Uiteraard geeft dit applicatie-problemen in het geval dat op de frontpage dezelfde cookie-names worden gebruikt. IE geeft cookies terug in document.cookie op chronologische volgorde, maar een cookie initieel geset op 'tweakers.net' is niet te overschrijven door de javascript op 'gathering.tweakers.net' (dat genereerd een nieuwe cookie), en aangezien je verder niet weet van welk domein een cookie afkomstig is via document.cookie is hier vrij weinig aan te doen.
Daarnaast vraag ik mij af of dit niet een serieuse security-issue is (ook al valt het binnen hetzelfde domein), en of dit al niet bekend is (ik kon zo gauw niets vinden eigenlijk).
Intentionally left blank