Kaip padaryti, kad jūsų "Java" kodas būtų patikimas "Internet Explorer"


Pastaba "Microsoft Java" virtualioji mašina (MSJVM) ir "Microsoft" SDK, skirtas "Java", nebėra galima platinti iš "Microsoft". Nebus jokių "MSJVM" arba "SDK for Java" patobulinimų. Papildomos informacijos apie "Java" kūrėjų išteklius rasite apsilankę šioje "Microsoft" svetainėje:

SANTRAUKA


Apsvarstykite kelis veiksnius, kai norite, kad "Java" kodas būtų vykdomas kaip visiškai patikimas, dalinai patikimas arba nepatikimas "Microsoft Internet Explorer". Šiame straipsnyje paaiškinami daugelis svarstymų ir jis nukreipia į kai kuriuos išteklius, kurie gali padėti užtikrinti, kad jūsų "Java" kodas turėtų tinkamą pasitikėjimo lygį, kai jis vykdo naršyklę.

DAUGIAU INFORMACIJOS


Klasės krautuvas

Svarbu suprasti klasės krautuvo reikšmę "Java". Klasės krautuvas kontroliuoja didžiąją dalį saugos ir prieigos prie klasės. Toliau pateiktas "Microsoft" žinių bazės straipsnis paaiškina, kada "Microsoft" virtualioji mašina ("Microsoft VM") naudoja skirtingus krautuvų:
177168 Kaip virtualiosios mašinos ieškoti "Java" klasėms?
Turėdami šią informaciją, galite priimti daugiau informacijos apie tai, kuris būdas gauti papildomų teisių labiausiai tinka jūsų projektui.

Ką tai reiškia, kad būtų patikimas

Terminas patikimi reiškia, kad kodas nebėra tik "Java" smėlio dėžės. Smėlio dėžė apriboja nepatikimą kodą iš sėkmingai atliktų patikimų operacijų, pvz.:
  • Skambinama į originalų kodą
  • COM naudojimas
  • J/Direct naudojimas
  • Prisijungimas prie nuotolinių kompiuterių
  • Spausdinimo
  • JDBC naudojimas
  • Aukščiausio lygio "Windows", kurie neturi "appletwarning", kūrimo
Jūsų klasėms vykdyti su teisėmis virš smėlio dėžės lygio, klasės turi būti pristatomos į kliento kompiuterį, esantį pasirašytame kabinete (CAB) faile. Kai pasirašote CAB failą, taip pat turite nurodyti teises, kurias reikia pateikti klasėms. "Microsoft Internet Explorer 4" yra trys iš anksto apibrėžti teisių lygiai (žemas, vidutinis ir aukštas).x:
  • DIDELĖS teisės atitinka "Java" smėlio dėžę. Vienintelis šio scenarijaus prisijungimo pranašumas yra tas, kad galite užtikrinti vartotojo kodą, kurį trečioji šalis nepakeitė.
  • VIDUTINĖS teisės yra tokios pačios, kaip didelės, bet leidžia foraccess į juodraštinę sritį vietiniame kompiuteryje.
  • MAŽOS teisės iš esmės suteikia prieigą prie visų anksčiau nurodytų operacijų.

Teisių tvirtinimui

Šiame žinių bazės straipsnyje pateikiama pakankamai informacijos, kaip suprasti, kodėl ir kaip turėtumėte nurodyti savo "Java" kodo teises:
175622 "Securitynenumatytas" išimtis, kurioje veikia "Java" programėlė

Kabineto (CAB) failo kūrimo

Dabar, kai supranti, kaip krautuvas, pasitikėjimas ir teisės, galite sužinoti, kaip sukurti kabinetinio (CAB) failą. Šiame etape turite nuspręsti, ar norite įdiegti savo kodą vartotojo kompiuteryje, ar tiesiog supakuoti kodą į CAB failą, kad galėtumėte greičiau atsisiųsti kiekvieną apsilankymą į savo puslapį. Jei nenorite įdiegti savo kodo vietiniame kompiuteryje, galite tiesiog sukurti CAB failą naudodami "Cabarc. exe" priemonę ir nurodyti KABINĄ iš į jūsų programėlę iš HTML pateikto parametro. Tai rodoma šio straipsnio 1 pavyzdyje. Pastaba Šiuo būdu nereikalaujama, kad pasirašote CAB failą, jei jums nereikia vykdyti kodo kaip patikimos. Vis dar galite gauti vieno suglaudinto failo atsisiuntimo, o ne atskirų klasių failų pranašumus. Jei norite įdiegti savo kodą vietiniame kompiuteryje, yra du požiūriai. Vienas iš būdų yra sukurti platinimo vienetą (DU) naudojant priemonę Dubuild. exe, skirtą "Java". Šis įrankis sukuria CAB failą ir jame yra automatiškai sugeneruotas. OSD failas. Šiame straipsnyje žiūrėkite pavyzdį 2. Kitas būdas įdiegti kodą vietiniame kompiuteryje yra naudoti. inf failą. Šis metodas yra šiek tiek daugiau Rankinis ir daugiau klaidų, tačiau turi išskirtinį pranašumą yra vienintelis būdas, kuris veikia "Internet Explorer 3".x ir vėlesnė versija. Šiame straipsnyje žiūrėkite pavyzdį 3. Kiekvienas iš šių metodų turi galimybę atsisiųsti kodą pirmajame apsilankant puslapyje ir nereikalaudama kito atsisiuntimo paskesnių apsilankymų metu, išskyrus atvejus, kai gaunama naujesnė versija. Tačiau jiems reikia nuolatinės vietos vartotojo vietiniame diske.

Skaitmeninio parašo naudojimas jūsų CAB faile

Turite pasirašyti savo KABINĄ, kai jūsų kodas turi ką nors padaryti už "Java" smėlio dėžės ribų arba kaskart, kai norite įdiegti kodą vietiniame kompiuteryje iš tinklalapio. Galite pasirašyti "CAB" naudodami funkciją Signcode. exe "SDK for Java". Tolesniuose šio straipsnio pavyzdžiuose rodomi keli įprasti pasirašymas. Papildomos informacijos rasite "" su "Java" teisių, skirtų "Java" teisių ir pavyzdžių "Java" teisių temoje: SDK spustelėkite rodyklė , tada spustelėkite S. Scroll Norėdami ieškoti "" kabineto failų pasirašymas su "Java" teisėmis. " Toliau pateikiami keli pagrindiniai dalykai, į kuriuos reikia atsižvelgti:
  • Smulkios "Java" teisės buvo įtrauktos į MicrosoftVM ir "SDK" skirtą "Java" 2,0 ir vėlesnės versijos įrankius.
  • Naudodami išsamios informacijos teises, galite apriboti jūsų exposureas "Java" paketo kūrėju sumažindami prieigą prie "bareminimum" pagal jūsų projektą.
  • Išsamios informacijos teisės yra pareikalautos naudojant. inifile prisijungimo metu. Daugiau informacijos ieškokite "Java" dokumentacijoje, pavadintoje "Javapermisijų. ini reikšmių nuoroda".
Galiausiai galite naudoti bandomąjį sertifikatą kūrimo tikslais (kaip matyti pavyzdžiuose šiame straipsnyje), tačiau prieš įdiegdami taikomąją programą bus pageidaujamas tikras sertifikatas. Tikrą sertifikatą gali gauti sertifikavimo institucija. "VeriSign" dabar išduoda visus patikimumo sertifikatus, skirtus naudoti su Authenticode. Galite susisiekti su "VeriSign" šioje vietoje: Daugiau informacijos apie tai, kaip kurti, kaip peržiūrėti ir kaip tvarkyti sertifikatus, rasite apsilankę šioje "Microsoft" programų kūrėjų tinklo (MSDN) svetainėje:

Žymės, nurodančios jūsų pasirašytą CAB failą

Yra kelios parinktys, nurodančios jūsų pasirašytą CAB failą HTML formatu. Toliau pateikiamas sąrašas ir trumpas skirtingų metodų palyginimas:
  • "cabbase" parametrai į "APPLET" žymę
  • spintelės parametrai į programėlę programėlė.
  • useslibrary, useslibrarycodebase ir useslibraryversionparameters į "APPLET" žymę
  • "cabbase" parametrai į objekto žymę
  • spintelės parametrai prie objekto žymės
  • useslibrary, useslibrarycodebase ir useslibraryversionparameters į objekto žymę

Patikimas kodas "Internet Explorer", skirtoje "Macintosh"

Authenticode nepalaikoma "Internet Explorer for Macintosh". Kad būtų galima įgalinti atsisiųstą kodo prieigą už "Java" smėlio dėžės, vartotojas turi įtraukti serverį į patikimų svetainių sąrašą ir nustatyti svetainės teises tiems, kuriems kodas reikalingas.

MĖGINIŲ

Galite naudoti šią "Java" klasę su šiais trimis trumpais pavyzdžiais. Nukopijuokite ir įklijuokite šį tekstą į failą, pavadintą simple. Java. Pastaba Įsitikinkite, kad turite "JVC. exe" versiją savo kelyje iš "SDK for Java" 2,0 (komponavimo 4337) arba naujesnę versiją. Šioje klasėje bus paprasta patvirtinti teises ir paleidus bus rodomas Win32 MessageBox:
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);}
Pastaba Linijos informacijos santrauka įterpiama toliau nurodytų komandų eilutėse. Šios komandų eilutės yra per ilgos, kad tilptų vienoje "Microsoft" žinių bazės eilutėje, tačiau turi būti redaguojamos paketiniais failais, kad būtų viena eilutė.

1 pavyzdys – Simple1

Šiame pavyzdyje rodomas pasirašytas CAB failas, kuris neįdiegtas į vietinį kompiuterį. Toliau pateiktas komandas galite naudoti norėdami kompiliuoti paprastą. "Java", sukurti CAB failą, kuriame yra Paprastasis. class, įgalinkite bandomąjį aplanką vietiniame kompiuteryje, sukurkite bandomąjį sertifikatą, pasirašykite CAB failą su mažomis "Java" teisėmis naudodami tikrinimo sertifikatą ir "Simple1". HTML puslapį naršyklėje. Iškirpkite ir įklijuokite šias komandas į paketinį failą, pavadintą go1. bat ir įrašykite jį į tą patį katalogą, kaip ir paprastą. "Java" failą, sukurtą anksčiau:
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
Prieš įvykdydami go1. bat, Iškirpkite ir įklijuokite toliau pateiktą HTML failą į failą, pavadintą Simple1. html, ir padėkite jį tame pačiame kataloge kaip ir failus, pavadintus simple. Java ir go1. bat sukurta anksčiau:
<HTML> <APPLET CODE="simple.Simple" WIDTH=100 HEIGHT=100> <PARAM NAME="cabbase" VALUE="mycab1.cab"> </APPLET></HTML>
Pastaba "Spintos" parametras veikia sinonimiškai su parametru "cabbase" kompiuteriuose, kuriuose veikia "Internet Explorer" 4,0 ir vėlesnė versija. Parametras "spintos" turi papildomas funkcijas, leidžiančias naudoti kelis CAB failus iš tos pačios programėlės žymės.

2 pavyzdys – Simple2

Šiame pavyzdyje rodomas pasirašytas CAB failas, kurį vietiniame kompiuteryje įdiegia "Java" paketų tvarkytuvas (JPM). Galite naudoti toliau pateiktas komandas, jei norite kompiliuoti paprastą. "Java", sukurti CAB failą, kuriame yra paprasta. class ir dubuild sugeneruota. OSD failas, įgalinti vietinio kompiuterio bandomąjį šaknį, sukurti bandomąjį sertifikatą, pasirašyti CAB failą su mažomis "Java" teisėmis naudojant bandomąjį sertifikatą ir naršyklėje atidaryti "Simple2. html" puslapį. Iškirpkite ir įklijuokite šias komandas į paketinį failą, pavadintą GO2. bat, ir įrašykite jį į tą patį katalogą, kurį anksčiau sukūrė paprastas. "Java" failas:
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
Prieš įvykdydami GO2. bat, Iškirpkite ir įklijuokite toliau pateiktą HTML failą į failą, pavadintą Simple2. html, ir padėkite jį tame pačiame kataloge kaip ir failus, pavadintus simple. Java ir GO2. bat sukurta anksčiau:
<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>
Kai paketas įdiegiamas vietiniame kompiuteryje naudojant JPM, jis bus rodomas aplanke "<windir"> \Atsisiųstų programų failai ". Naudokite šį aplanką Norėdami peržiūrėti ir pašalinti paketus, įdiegtus naudojant "Internet Explorer".

3 pavyzdys – Simple3

Šiame pavyzdyje rodomas pasirašytas CAB failas, kuris įdiegia paprastą. class failą <windir> \java\lib\simple Directory vietiniame kompiuteryje. Galite naudoti toliau pateiktas komandas, jei norite kompiliuoti paprastą. "Java", sukurti CAB failą, kurio sudėtyje yra paprasta. class ir. inf failą, kurį sukūrėte, įgalinti bandomąjį šaknį vietiniame kompiuteryje, sukurti bandomąjį sertifikatą, pasirašyti CAB failą su mažomis "Java" teisėmis naudojant tikrinimo sertifikatą ir įjungti naršyklės Simple3. HTML puslapį. Iškirpkite ir įklijuokite šias komandas į paketinį failą, pavadintą go3. bat, ir įrašykite jį į tą patį katalogą, kurį anksčiau sukūrė paprastas. "Java" failas:
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
Prieš pradėdami vykdyti go3. bat, turite iškirpti ir įklijuoti šį HTML failą į failą, pavadintą Simple3. html, ir patalpinti jį tame pačiame kataloge kaip ir failai, pavadinti simple. Java ir go3. bat sukurta anksčiau:
<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>
Pastaba Pakeiskite GUID aukščiau "99999999-9999-9999-9999-999999999999", naudodami vieną. inf failą, sukurtą toliau pateikiamomis instrukcijomis. Atlikite šiuos veiksmus, kad sukurtumėte paprastą. inf failą, kuris bus įtrauktas į išorinį CAB failą:
  1. Nukopijuokite Master. inf iš <SDK-dir> \bin\packsigndirectory.
  2. Pervardykite naują Master. inf kopiją į simple. inf.
  3. Atidarykite paprastą. inf failą teksto rengyklėje.
  4. Pakeiskite šias eilutes iš:
    run=extrac32.exe /e /a /y /l %49000% CabFileName.cab
    Į
    run=extrac32.exe /e /a /y /l %49000% mycab3.inner.cab
    InfFile=master.inf
    Į
    InfFile=simple.inf
    ClassId="{99999999-9999-9999-9999-999999999999}"
    Į
    1. Paleiskite guidgen. exe (iš <SDK-dir> \talpyklos katalogo).
    2. Pasirinkite parinktį #4 "registro formatas".
    3. Paspauskite mygtuką "naujas GUID".
    4. Paspauskite mygtuką "kopijuoti".
    5. Įklijuokite naują GUID iš mainų srities į eilutę, esančią virš paprasto. INF failo ir taip pat į aukščiau esantį HTML.
    PackageName="name"
    Į
    PackageName="SIMPLE3"
    HKLM,"SOFTWARE\Classes\CLSID\%ClassId%\InstalledVersion",,,"aa,bb,cc,dd"
    Į
    HKLM,"SOFTWARE\Classes\CLSID\%ClassId%\InstalledVersion",,,"1,1,23,0"
    HKLM,"Software\Classes\CLSID\%ClassId%\InstalledVersion","Path",,  "%49000%\<filename>"
    Į
    HKLM,"Software\Classes\CLSID\%ClassId%\InstalledVersion","Path",,  "%49000%\simple\Simple.class"
  5. Įrašykite atliktus paprastus. inffile atliktus pakitimus.
  6. Paleiskite anksčiau sukurtą go3. bat failą.
1 Pastaba Paleidę ankstesnius pavyzdžius, vietiniame kompiuteryje turite išjungti bandomąjį šaknį paleisdami "setreg. exe 1 klaidingas". Tai užkirs kelią bandomajam šakniastiejai kaip tikro sertifikato "Internet Explorer". Bandomasis pagrindas visada gali būti įgalintas iš naujo naudojant "setreg. exe 1 TRUE". 2 pastaba Atkreipkite dėmesį į tai, kai pasirašote savo CAB failą, skirtą gamybai naudoti stichijos testą:
  1. Visos ankstesnės komandos sugeneruoja sertifikatą andimmediately. Dauguma žmonių iš naujo sukuria savo sertifikatus kiekvieną kartą, kai jie stato ir pasirašo, bet nedarote, jei publikuojate KABINĄ. Galite įsigyti ir naudoti sertifikatą ir atidžiai jį stebėti. Ankstesnės komandos sukuria bandomąjį sertifikatą, bet reikia atlikti tik tuos, kurių dar neįsigijote. Taip būtų galima prisijungti, jei jie turi a. PVK failą, o ne Išsaugoti registro raktą, nes kai kurie žmonės gauna tos formos raktus. Pavaduojantis narys "-v Mycertiname. PVK", skirtas "-k KeyName".
  2. Kai vykdote komandą "signcode. exe", jei norite, kad būtų galima įtraukti "-t http://timestamp.verisign.com/scripts/timstamp.dll" parinktį, tinkamą laiko žymą CAB faile. Jis liko iš thesesamples, kad komanda galėtų būti sėkminga vartotojams, kurie neturi persistentconnection prie interneto.
3 pastaba "Microsoft Visual J++" 6,0 pateikia paprastą "Java" komponentų pakuotę. Skirtuke išvestis, esančiame dialogo lange projekto ypatybės, ir papildomos informacijos produkto dokumentacijoje. Paskirstymo mazgai, sukurti naudojant "Visual J++" 6,0, naudojami paketo diegimo JPM.4 Pastaba Galite konfigūruoti "Internet Explorer 4".x arba aukštesnis, kad būtų galima laikyti nepasirašytą kodą kaip numatytąjį pagal numatytuosius smėlio dėžės teises. Tai darykite tik specializuotoms situacijoms, pvz., intranete arba testavimo tikslais. Jei pasirenkate konfigūruoti "Internet Explorer" tokiu būdu, būkite įspėti, kad nebeteisite apsaugos nuo kenkėjiškų "Java" kodo, kuris veikia jūsų kompiuteryje. Pvz., jei norite automatiškai apdoroti visas "Java" programėles kaip visiškai patikimą intraneto zonoje, atlikite šiuos veiksmus:
  1. Eikite į skirtuką Sauga dialogo lange Interneto ypatybės.
  2. Pasirinkite vietinio intraneto zoną.
  3. Pasirinkite parinktį pasirinktinai, tada spustelėkite Parametrai.
  4. Raskite "Java" teisių elementą sąraše ir pasirinkite "chooseCustom".
  5. Pasirinkite pasirinktinai, tada spustelėkite " Java" pasirinktinė parametrai.
  6. Eikite į skirtuką Redaguoti teises.
  7. Dalyje vykdyti nepasirašytą turinį spustelėkite įgalinti.

NUORODOS


Jei reikia papildomos informacijos apie saugos ir pakavimo problemas "Microsoft" virtualiojoje mašinoje, spustelėkite toliau pateiktus straipsnių numerius ir peržiūrėkite straipsnius "Microsoft" žinių bazėje:
175622 "Securitynenumatytas" išimtis, kurioje veikia "Java" programėlė
177168 Kaip "Java" virtualioji mašina ieško "Java" klasių?
179652 Kaip įdiegti "Java" naršyklėje "Internet Explorer" 4,0 ir "Netscape 4,0"
181374 Susijusių komponentų atsisiuntimo straipsniai
Daugiau informacijos apie kodo atsisiuntimo problemas rasite apsilankę šioje MSDN svetainėje: Naujausių žinių bazės straipsnių ir kitos palaikymo informacijos apie "Visual J++" ir "Java" SDK ieškokite šiuose puslapiuose "Microsoft" techninio palaikymo svetainėje: