Uw Java-code vertrouwd maken in Internet Explorer


Opmerking De Microsoft Java Virtual Machine (MSJVM) en de Microsoft SDK voor Java zijn niet meer beschikbaar voor distributie van Microsoft. De MSJVM of de SDK voor Java is niet verbeterd. Ga naar de volgende Microsoft-website voor meer informatie over bronnen voor Java-ontwikkelaars:

OVERZICHT


Houd rekening met de volgende factoren wanneer u de Java-code volledig vertrouwd, gedeeltelijk vertrouwd of niet-vertrouwd wilt maken in Microsoft Internet Explorer. In dit artikel worden veel van de overwegingen beschreven, en deze verwijst naar sommige bronnen die u kunnen helpen garanderen dat uw Java-code het juiste vertrouwensniveau heeft wanneer dit wordt uitgevoerd in de browser.

MEER INFORMATIE


Klas lader

Het is belangrijk dat u de betekenis van de klas lader in Java begrijpt. De klasse Loader beheert een groot aantal beveiligings-en toegangsrechten voor een klas. In het volgende artikel in Microsoft Knowledge Base wordt uitgelegd wanneer de Microsoft VM-computer (Microsoft VM) gebruikmaakt van verschillende invoegtoepassingen:
177168 Hoe zoekt de virtuele machine naar Java-klassen?
Met deze informatie kunt u een beter geïnformeerde beslissing stellen over de manier waarop extra machtigingen worden verkregen voor uw project het meest geschikt is voor uw project.

Wat betekent dit? vertrouwd

De term vertrouwd houdt in dat de code niet langer wordt beperkt tot de Java sandbox. De sandbox beperkt niet-vertrouwde code voor het uitvoeren van de vertrouwde bewerkingen, zoals:
  • Systeemeigen code bellen
  • Met COM
  • J/direct gebruiken
  • Verbinding maken met externe computers
  • Afdrukken
  • JDBC gebruiken
  • Het maken van Vensters op het hoogste niveau zonder de appletwarning
Als u wilt dat de klassen met machtigingen worden uitgevoerd boven het sandbox-niveau, moeten de klassen worden afgeleverd bij de clientcomputer in een ondertekend CAB-bestand (CAB). Wanneer u het CAB-bestand ondertekent, moet u ook de machtigingen opgeven die voor de gecontaineerde klassen vereist zijn. Er zijn drie vooraf gedefinieerde machtigingsniveaus (laag, normaal en hoog) in Microsoft Internet Explorer 4.x:
  • HOGE machtigingen zijn gelijk aan de Java sandbox. Theonly voordeel van dit scenario is dat u ervoor kunt zorgen dat een gebruiker ofyour code die een derde partij de code niet heeft gewijzigd.
  • MEDIUM machtigingen zijn hetzelfde als hoog, maar zorgen dat foraccess een Scratch gebied op de lokale computer toestaat.
  • Met beperkte machtigingen krijgt u in feite toegang tot alle eerder genoemde theoperations.

Machtigingen bevestigen

Het volgende Knowledge Base-artikel bevat voldoende informatie om te begrijpen wanneer, waarom en wanneer u de machtiging voor uw Java-code moet bevestigen:
175622 SecurityExceptionEx-uitzondering met een Java-applet

Het cabinet-bestand (CAB) maken

Nu u het concept van laad rechten, vertrouwensrelaties en machtigingen begrijpt, is de volgende stap het maken van een CAB-bestand. In dit stadium moet u aangeven of u de code op de computer van de gebruiker wilt installeren of gewoon de code in een CAB-bestand wilt inpakken, zodat u deze sneller kunt downloaden voor elke bezoek aan de pagina. Als u de code niet wilt installeren op de lokale computer, kunt u een CAB-bestand maken met behulp van het hulpprogramma Cabarc. exe en de cabine raadplegen op basis van een parameter die aan de applet is doorgegeven uit HTML. Dit wordt weergegeven in voorbeeld 1 verderop in dit artikel. Opmerking Voor deze methode hoeft u het CAB-bestand niet te ondertekenen als u de code niet nodig hebt om als vertrouwd te worden uitgevoerd. U kunt nog steeds profiteren van de voordelen van het gebruik van één gecomprimeerd bestand in plaats van afzonderlijke klas bestanden. Als u de code op de lokale computer wilt installeren, zijn er twee manieren waarop u kunt werken. Eén manier is om een distributie-eenheid (DU) te maken met het hulpprogramma Dubuild. exe in de SDK voor Java. Dit hulpprogramma maakt een CAB-bestand en bevat een automatisch gegenereerd. OSD-bestand. Zie voorbeeld 2 verderop in dit artikel. De andere methode voor het installeren van code op de lokale computer is door een inf-bestand te gebruiken. Deze methode is iets meer hand matiger en bevat foute gevoelige informatie, maar biedt de enige voordelen van het gebruik van de enige methode die werkt met Internet Explorer 3.x en hoger. Zie voorbeeld 3 verderop in dit artikel. Elk van deze methoden biedt het voordeel van het downloaden van de code op het eerste bezoek van de pagina en het vereisen van een andere download bij volgende bezoeken, tenzij er een nieuwere versie beschikbaar is. Voor de gebruiker is echter wel enkele permanente ruimte nodig op het lokale station van de gebruiker.

Een digitale handtekening gebruiken in een CAB-bestand

U moet uw CAB registreren wanneer de code moet worden ondernomen buiten de Java sandbox of wanneer u code wilt installeren op de lokale computer vanaf een webpagina. U meldt een CAB-bestand met het hulpprogramma Signcode. exe in de SDK voor Java. In de voorbeelden verderop in dit artikel worden enkele veelvoorkomende scenario's voor tekenen weergegeven. U vindt aanvullende informatie in het onderwerp ' handtekeningen cabinetbestanden met Java-machtigingen ' zoeken van de SDK voor Java-documentatie en voorbeelden op de volgende locatie: Klik in de SDK op indexeren en vervolgens op S. schuiven Als u wilt weten hoe u cabinetbestanden met een Java-machtiging ondertekent. Hier volgen enkele belangrijke punten waarmee u rekening moet houden:
  • Aan de hand van de hulpmiddelen voor MicrosoftVM en ondertekening zijn in de SDK voor Java 2,0 en hoger bestemde Java-machtigingen toegevoegd.
  • Met behulp van verfijnde machtigingen kunt u de exposureas een ontwikkelaar van een Java-pakket beperken door de toegang tot de bareminimum die door uw project is vereist, te verminderen.
  • Met verfijnde machtigingen wordt een. Inifile aangevraagd wanneer u zich aanmeldt. Zie de SDK voor de Java-documentatie getiteld naslag voor JavaPermissions. ini voor aanvullende informatie.
Ten slotte kunt u een testcertificaat gebruiken om te ontwikkelen (zoals in de voorbeelden verderop in dit artikel wordt weergegeven), maar er is een echt certificaat nodig voordat u de toepassing implementeert. Een echt certificaat kan worden verkregen door een certificeringsinstantie. VeriSign maakt nu full-Assurance-certificaten voor gebruik met Authenticode. U kunt op de volgende locatie contact opnemen met VeriSign: Ga naar de volgende MSDN-website (Microsoft Developer Network) voor meer informatie over het maken, weergeven en beheren van certificaten.

Tags om te verwijzen naar uw ondertekende CAB-bestand

Er zijn verschillende opties om te verwijzen naar het ondertekende CAB-bestand in HTML. Hieronder ziet u een lijst met een korte vergelijking van de verschillende methoden:
  • cabbase-parameters voor een APPLET-tag
  • parameters van cabinetbestanden aan een APPLET-tag.
  • useslibrary, useslibrarycodebase en useslibraryversionparameters aan een APPLET-tag
  • cabbase-parameters voor een OBJECT label
  • parameters van cabinetbestanden aan een OBJECT-tag
  • useslibrary, useslibrarycodebase en useslibraryversionparameters aan een OBJECT label

Vertrouwde code in Internet Explorer voor Mac

Authenticode wordt niet ondersteund in Internet Explorer voor Mac. De gebruiker moet de server toevoegen aan de lijst met vertrouwde websites en vervolgens de site machtigingen instellen voor de toegang tot de code van de sandbox.

VOORBEELDEN

U kunt de volgende Java-klasse gebruiken met de volgende drie kort monsters. Knip en plak deze tekst in een bestand met de naam Simple. java. Opmerking Zorg ervoor dat u een versie van JVC. exe hebt in het pad van de SDK voor Java 2,0 (build 4337) of hoger. Deze klas gaat over eenvoudige bevestiging en geeft een Win32-MessageBox weer bij uitvoering:
package simple;import com.ms.security.*;public class Simple extends java.applet.Applet{  public void init()  {    try {      if (Class.forName("com.ms.security.PolicyEngine") != null)        PolicyEngine.assertPermission(PermissionID.SYSTEM);    } catch (Throwable cnfe) {  }    try {          MessageBox(0, "MessageBox successfully called.", "Java", 0);      } catch (UnsatisfiedLinkError ule) {          System.err.println("Caught exception: " + ule);          System.err.println("Probably wrong version of Java                             compiler.");      }  }  /** @dll.import("USER32") */   static native int MessageBox(int    hwndOwner,                               String text,                               String title,                               int    style);}
Opmerking Hieronder ziet u hoe de regel wordt ingevoegd in de opdrachtregels voor Signcode. exe. Deze opdrachtregels zijn te lang om te passen op één regel in de Microsoft Knowledge Base, maar moeten in uw batchbestanden een enkele regel worden bewerkt.

Voorbeeld van 1-Simple1

In dit voorbeeld ziet u een ondertekend CAB-bestand dat niet wordt geïnstalleerd op de lokale computer. U kunt de onderstaande opdrachten gebruiken om eenvoudige. Java te compileren, een CAB-bestand met eenvoudige klasse te maken, de test basis op de lokale computer in te schakelen, een testcertificaat te maken, het CAB-bestand te ondertekenen met weinig Java-machtigingen via het testcertificaat, en de pagina Simple1. html te starten in de browser. Knip en plak deze opdrachten naar een batchbestand met de naam go1. bat en sla het bestand op in dezelfde map als het eenvoudige Java-bestand dat u hebt gemaakt:
jvc /d . Simple.javacabarc -p n mycab1.cab simple/Simple.classdel simple\Simple.classsetreg 1 truemakecert -sk MyKeyName -n "CN=My Publisher Name" MyTestCert.cercert2spc MyTestCert.cer MyTestCert.spcsigncode -j javasign.dll -jp LOW -spc MyTestCert.spc -k MyKeyName  mycab1.cabstart Simple1.html
Voordat u go1. bat uitvoert, knipt u de HTML en plakt u deze in een bestand met de naam Simple1. html en plaatst u deze in dezelfde map als de bestanden met de naam eenvoudige. Java en go1. bat die eerder zijn gemaakt:
<HTML> <APPLET CODE="simple.Simple" WIDTH=100 HEIGHT=100> <PARAM NAME="cabbase" VALUE="mycab1.cab"> </APPLET></HTML>
Opmerking Een parameter ' cabbases ' werkt interchanged met een '-parameter op computers met Internet Explorer 4,0 en hoger. De parameter ' cabinetbestanden ' bevat de functionaliteit voor het toevoegen van meerdere CAB-bestanden aan de hand van dezelfde APPLET-Tags.

Voorbeeld van een 2-SIMPLE2

In dit voorbeeld ziet u een ondertekend CAB-bestand dat wordt geïnstalleerd in de java package manager (JPM) op de lokale computer. Met de onderstaande opdrachten kunt u eenvoudig een programma compileren. Java, maak een CAB-bestand met een eenvoudige. class en een dubuild-gegenereerd. OSD-bestand, schakel de basis van de test op de lokale computer in, maak een testcertificaat, onderteken het CAB-bestand met laag Java-machtigingen met behulp van het testcertificaat en start de pagina SIMPLE2. html in de browser. Knip en plak deze opdrachten naar een batchbestand met de naam go2. bat en sla het bestand op in dezelfde map als het eenvoudige Java-bestand dat u eerder hebt gemaakt:
jvc /d . Simple.javadubuild mycab2.cab . /D "JPM Simple2" /I *.class /V 1,1,23,0del simple\Simple.classsetreg 1 truemakecert -sk MyKeyName -n "CN=My Publisher Name" MyTestCert.cercert2spc MyTestCert.cer MyTestCert.spcsigncode -j javasign.dll -jp LOW -spc MyTestCert.spc -k MyKeyName  mycab2.cabstart Simple2.html
Voordat u go2. bat uitvoert, knipt u de HTML en plakt u deze in een bestand met de naam SIMPLE2. html en plaatst u deze in dezelfde map als de bestanden met de naam eenvoudige. Java en go2. bat die eerder zijn gemaakt:
<HTML> <APPLET code="simple.Simple" WIDTH=100 HEIGHT=100> <PARAM NAME=useslibrary VALUE="JPM Simple2"> <PARAM NAME=useslibrarycodebase VALUE="mycab2.cab"> <PARAM NAME=useslibraryversion VALUE="1,1,23,0"> </APPLET></HTML>
Wanneer een pakket is geïnstalleerd op de lokale computer met behulp van JPM, wordt dit weergegeven in de map <windir> \Downloaded Program Files. Met deze map kunt u pakketten weergeven of verwijderen die zijn geïnstalleerd met Internet Explorer.

Voorbeeld van 3-Simple3

In dit voorbeeld ziet u een ondertekend CAB-bestand dat het bestand Simple. class installeert in de <windir> \java\lib\simple op de lokale computer. U kunt de onderstaande opdrachten gebruiken om eenvoudige. Java te compileren, een CAB-bestand te maken met een eenvoudige. class en een. inf-bestand dat u maakt, de basis van de test op de lokale computer inschakelen, een testcertificaat maakt, het CAB-bestand met weinig Java-machtigingen gebruikt en de pagina Simple3. html in de browser starten. Knip en plak deze opdrachten naar een batchbestand met de naam go3. bat en sla het bestand op in dezelfde map als het eenvoudige Java-bestand dat u eerder hebt gemaakt:
jvc /d . Simple.javacabarc -p n mycab3.inner.cab simple/Simple.classdel simple\Simple.classcabarc n mycab3.cab mycab3.inner.cab simple.infsetreg 1 truemakecert -sk MyKeyName -n "CN=My Publisher Name" MyTestCert.cercert2spc MyTestCert.cer MyTestCert.spcsigncode -j javasign.dll -jp LOWX -spc MyTestCert.spc -k MyKeyName  mycab3.cabstart Simple3.html
Voordat u go3. bat uitvoert, moet u de volgende HTML knippen en plakken in een bestand met de naam Simple3. html en het bestand in dezelfde map plaatsen als de bestanden met de naam Simple. Java en go3. bat die eerder zijn gemaakt:
<HTML> <OBJECT    CLASSID="clsid:99999999-9999-9999-9999-999999999999" CODEBASE="mycab3.cab#Version=1,1,23,0"> </OBJECT> <APPLET CODE="simple.Simple" WIDTH=100 HEIGHT=100> </APPLET></HTML>
Opmerking Vervang de GUID hierboven ' 99999999-9999-9999-9999-999999999999 ' door een van de guid's die voor het inf-bestand is gemaakt, in de volgende instructies. Voer de volgende stappen uit om het eenvoudige inf-bestand te maken dat in het buitenste CAB-bestand moet worden opgenomen:
  1. Kopieer het bestand master. inf uit de <-> \bin\packsigndirectory.
  2. Wijzig de naam van het nieuwe exemplaar van het bestand master. inf naar Simple. inf.
  3. Open het Simple. inf-bestand in een teksteditor.
  4. Wijzig de volgende regels uit:
    run=extrac32.exe /e /a /y /l %49000% CabFileName.cab
    Aan:
    run=extrac32.exe /e /a /y /l %49000% mycab3.inner.cab
    Van:
    InfFile=master.inf
    Aan:
    InfFile=simple.inf
    Van:
    ClassId="{99999999-9999-9999-9999-999999999999}"
    Aan:
    1. Voer Guidgen. exe uit (uit de map <-> map).
    2. Selecteer optie #4 ' registerindeling '.
    3. Duw de knop nieuwe GUID.
    4. Druk op de knop ' kopiëren '.
    5. Plak de nieuwe GUID van het Klembord op de bovenstaande regel in het eenvoudige. inf-bestand en in de HTML hierboven.
    Van:
    PackageName="name"
    Aan:
    PackageName="SIMPLE3"
    Van:
    HKLM,"SOFTWARE\Classes\CLSID\%ClassId%\InstalledVersion",,,"aa,bb,cc,dd"
    Aan:
    HKLM,"SOFTWARE\Classes\CLSID\%ClassId%\InstalledVersion",,,"1,1,23,0"
    Van:
    HKLM,"Software\Classes\CLSID\%ClassId%\InstalledVersion","Path",,  "%49000%\<filename>"
    Aan:
    HKLM,"Software\Classes\CLSID\%ClassId%\InstalledVersion","Path",,  "%49000%\simple\Simple.class"
  5. Sla de wijzigingen op die u hebt aangebracht in het eenvoudige. inffile.
  6. Voer het bestand go3. bat eerder te maken.
Opmerking 1 Nadat u de vorige voorbeelden hebt uitgevoerd, moet u de hoofdmap voor testen op de lokale computer uitschakelen door ' setreg. exe 1 false ' uit te voeren. Hierdoor wordt voorkomen dat de hoofdmap van de test wordt gehonoreerd als een echt certificaat met Internet Explorer. De test basis kan altijd opnieuw worden geactiveerd met behulp van ' setreg. exe 1 True '. Opmerking 2 Houd rekening met het volgende wanneer u een CAB-bestand ondertekent voor het uitvoeren van tekst tests:
  1. Met alle vorige opdrachten wordt het certificaat andimmediately het aanmelden. De meeste personen maken hun certificaten opnieuw via een timethey, en onderteken een cabine, maar u hoeft dit niet te doen als u het CAB-bestand publiceert. U koopt en gebruikt een certificaat, en u kunt het altijd zorgvuldig bijhouden. Met de vorige opdrachten maakt u een testcertificaat, maar u hoeft niet te doen thisif u geen abonnement hebt gekocht. Op deze manier meldt u zich aan als de persoon een PVK-fileinstead heeft om de sleutel in het register te houden, omdat sommige personen theirkeys in dat formulier ontvangen. Vervang '-v MyCertName. PVK ' voor '-k-naam van de naam '.
  2. Wanneer u de opdracht signcode. exe uitvoert, moet u de optie '-t http://timestamp.verisign.com/scripts/timstamp.dll ' probablyadd tijdstempel toevoegen aan het CAB-bestand. De opdracht werd verlaten van thesesamples, zodat de opdracht kan worden uitgevoerd voor gebruikers die geen persistentconnection op internet hebben.
Opmerking 3 Microsoft Visual J++ 6,0 biedt een eenvoudige verpakking van Java-componenten. Zie het tabblad uitvoer in het dialoogvenster Project eigenschappen en de productdocumentatie voor aanvullende informatie. Distributie eenheden die zijn gemaakt met Visual J++ 6,0 gebruik de JPM voor package installatie.Opmerking 4 U kunt Internet Explorer 4 configureren.x of hoger om een niet-ondertekend programma te behandelen met een standaardinstelling voor de sandbox-machtigingen. U moet dit alleen doen voor gespecialiseerde situaties zoals het intranet of voor testdoeleinden. Als u ervoor kiest om Internet Explorer op deze manier te configureren, wordt u aangeraden geen bescherming meer te bieden tegen schadelijke Java-code die op uw computer wordt uitgevoerd. Voer de volgende stappen uit als u bijvoorbeeld alle Java-invoegtoepassingen automatisch als volledig vertrouwd wilt behandelen in de intranet zone:
  1. Ga naar het tabblad Beveiliging in het DialogBox Internet eigenschappen.
  2. Selecteer de lokale intranet zone.
  3. Selecteer de optie aangepast en klik op instellingen.
  4. Ga naar het item met de Java-machtigingen in de lijst en chooseCustom.
  5. Selecteer aangepast en klik op aangepaste Java-instellingen.
  6. Ga naar het tabblad Machtigingen bewerken.
  7. Klik onder niet-ondertekende inhoud uitvoeren op inschakelen.

VERWIJZINGEN


Als u meer wilt weten over beveiligings-en pakket problemen in de Microsoft-werkcomputer, klikt u op de volgende artikelnummers om de artikelen in de Microsoft Knowledge Base weer te geven:
175622 SecurityExceptionEx-uitzondering met een Java-applet
177168 Hoe worden Java-klassen gezocht in Java voor virtuele machines?
179652 Java installeren in Internet Explorer 4,0 en Netscape 4,0
181374 Artikelen over het downloaden van gerelateerde onderdelen
Ga naar de volgende MSDN-website voor meer informatie over het downloaden van code: Voor de meest recente Knowledge Base-artikelen en andere ondersteuningsinformatie over Visual J++ en de SDK voor Java, raadpleegt u de volgende pagina's op de website van Microsoft technische ondersteuning: