Exporteren (0) Afdrukken
Alles uitvouwen
Expand Minimize

Het in de cache plaatsen van objecten in Internet Explorer

noteOpmerking
Met het onderdeel Verbeterde beveiliging van Internet Explorer in Microsoft Windows Server 2003 (ook wel extra beveiliging van Microsoft Internet Explorer genoemd) wordt een server beter beschermd tegen aanvallen via webinhoud. Hiertoe worden in Internet Explorer strengere beveiligingsinstellingen gehanteerd voor scripts, ActiveX-onderdelen en het downloaden van bestanden voor bronnen die zich in de internetbeveiligingszone bevinden. Als gevolg hiervan lopen vele van de verbeteringen op beveiligingsgebied in de nieuwste release van Internet Explorer in Windows Server 2003 Service Pack 1 minder in het oog. Zo worden de nieuwe informatiebalk in Internet Explorer en pop-upblokkering alleen gebruikt als de site zich bevindt in een zone waarvoor de beveiligingsinstelling het gebruik van scripts toestaat. Als u de verbeterde beveiligingsconfiguratie op uw server niet gebruikt, werken deze functies hetzelfde als in Windows XP Service Pack 2.

Hoe werkt het in de cache plaatsen van objecten?

In vorige versies van Windows Server 2003 met Internet Explorer konden met bepaalde webpagina's objecten worden geopend die door een andere website in de cache waren geplaatst. In Windows Server 2003 Service Pack 1 zijn verwijzingen naar objecten niet meer toegankelijk zodra de gebruiker naar een ander domein navigeert.

Voor wie is deze voorziening van belang?

Webontwikkelaars moeten kennis nemen van deze voorziening en hun website indien nodig aanpassen.

Ontwikkelaars van toepassingen moeten kennis nemen van deze voorziening en hun toepassingen indien nodig aanpassen.

Welke nieuwe functionaliteit is aan deze voorziening toegevoegd in Windows Server 2003 Service Pack 1?

Geen. De bestaande functionaliteit is uitgebreid.

Welke bestaande functionaliteit is gewijzigd in Windows Server 2003 Service Pack 1?

Beveiligingscontext wordt ongeldig bij navigeren naar een ander domein

Gedetailleerde beschrijving

Voor Windows Server 2003 Service Pack 1 is er nu een nieuwe beveiligingscontext van toepassing op alle objecten die met een script kunnen worden aangeroepen, zodat de toegang tot in de cache geplaatste objecten (met uitzondering van ActiveX-besturingselementen) wordt geblokkeerd. De toegang wordt niet alleen geblokkeerd wanneer naar een ander domein wordt genavigeerd, maar ook wanneer binnen hetzelfde domein wordt genavigeerd. (In deze context wordt onder een domein een FQDN-naam ofwel een Fully Qualified Domain Name verstaan.) Een verwijzing naar een object is niet meer toegankelijk wanneer de context door navigatie verandert.

Wat is het belang van deze wijziging? Welke risico's worden hierdoor mede beperkt?

Vóór Internet Explorer 5.5 werden exemplaren van MSHTML, de parserings- en opbouwengine voor HTML van Microsoft, opgeschoond bij navigatie tussen HTML-pagina's (of naar subframes). Bij de Native Frames-architectuur van Internet Explorer 5.5 blijft een MSHTML-exemplaar intact bij navigeren. Zodoende is een nieuw soort beveiligingsrisico's ontstaan, omdat objecten ook bij navigeren in de cache aanwezig bleven. Als een object in de cache kan worden geplaatst en toegang biedt tot de inhoud van een webpagina vanuit een ander domein, is er sprake van een beveiligingslek.

Wanneer de eigenschappen van een pagina toegankelijk zijn, kan met een script buiten het domein van de desbetreffende pagina toegang worden verkregen tot de inhoud van een pagina. Dit is een schending van het beveiligingsmodel tussen verschillende domeinen van Internet Explorer.

Met behulp van deze methode kunnen bijvoorbeeld scripts worden gemaakt die gebruikmaken van gebeurtenissen of inhoud in een ander frame, zoals creditcardnummers of andere vertrouwelijke gegevens die in het desbetreffende frame worden getypt.

Wat werkt er anders? Zijn er consequenties die hiermee samenhangen?

Waar nodig worden vier bytes toegevoegd voor de in de cache geplaatste pagina's. Dit zou geen merkbare invloed moeten hebben op de snelheid.

Hoe los ik dit op?

Bij de meeste van deze beveiligingsrisico's zou Internet Explorer 5 zijn vastgelopen, dus de kans is klein dat het oplossen van het beveiligingsprobleem leidt tot problemen met de compatibiliteit van toepassingen. Overige toepassingen moeten mogelijk per geval worden bekeken.

Welke instellingen zijn toegevoegd of gewijzigd in Windows Server 2003 Service Pack 1?

Het in de cache plaatsen van objecten in Internet Explorer

Naam instelling Locatie Vorige standaardwaarde Standaardwaarde Mogelijke waarden

IExplore.exe

Explorer.exe

HKEY_LOCAL_MACHINE (of Current User)\Software \Microsoft \Internet Explorer\Main \FeatureControl \FEATURE_OBJECT_CACHING

Geen

1

0 - Uit

1 - Aan

Moet ik mijn code wijzigen zodat deze werkt in Windows Server 2003 Service Pack 1?

Als u toepassing een in de cache geplaatst object probeert te gebruiken, wordt mogelijk het bericht 'Toegang geweigerd' weergegeven. U moet in dat geval uw het object opnieuw in de cache plaatsen voordat u het via een script gebruikt.

In het volgende voorbeeld wordt de beveiligingscontext ongeldig wanneer de eigenschap designMode voor een documentobject wordt ingesteld.

Voorbeeld van ongeldig script

    var d = myFrame.document;
    d.designMode = "On";
    d.open();  <-------------------------causes permission denied error

Voorbeeld van gerepareerd script

    var d = myFrame.document;
    d.designMode = "On";
    d = myFrame.document;   // re-establish pointer to document object.
    d.open();

Als u bovendien de waarden van de twee frame.frames-eigenschappen van een object vergelijkt, zijn de resultaten mogelijk onjuist of worden de waarden niet behouden. Dit komt omdat het framesobject nu verpakt wordt met een beveiligingswrapper. Als de functie voor het in de cache plaatsen van objecten is ingeschakeld, wordt deze beveiligingswrapper toegepast. Dit betekent dat de toegang tot alle in de cache geplaatste objecten wordt geblokkeerd. De vergelijking van framesobjecten kan hierdoor een onjuist resultaat retourneren ook al zijn de frames gelijk. U kunt dit probleem oplossen door aan de hand van de volgende methode de waarde van frames te vergelijken:

a.name == parent.frames[1].frames.name

Vindt u dit nuttig?
(1500 tekens resterend)
Bedankt voor uw feedback

Community-inhoud

Toevoegen
Weergeven:
© 2014 Microsoft