Ezekben az esetekben a fájlletöltés dialógusablaka nem mellőzhető semmiféle módon. Ebben benne értendő a HTML tag-ek, scriptek, WebBrowser vezérlő és a biztonsági zóna opciók hatása is.
Ezek a dialógusablakok bosszantók lehetnek. Cikkünkben kétféle módszert mutatunk be, amelyekkel elkerülhető az említett dialógusablak.
Weboldalakon hagyományosan linkeket használunk arra, hogy fájlokat indítsunk el kétféle szándékkal; vagy letölteni akarunk, vagy megnyitni. A HTML-ben nincs semmi, ami megmondaná, hogy letöltsünk, vagy indítsunk egy állományt, ezért a felhasználónak kell döntenie.
Az Internet Explorer ellenőrzi a fájl kiterjesztését, és az alapján jeleníti meg az ablakot, mivel a felhasználó a legtöbb fájltípushoz kikapcsolhatja ezt a dialógust.
Az Internet Explorer azonban tartalmaz egy erősen kódolt fájltípus listát, amelyet nem enged dialógusablak nélkül megnyitni. Ezek a kiterjesztések az általános futtatható és egyéb fájlok, amelyek veszélyt is jelenthetnek a felhasználó gépére. Az alábbi listában láthatjuk ezeket a kiterjesztéseket. (A csak IE5-el jelölt fájlok az IE5-ös verzió óta szerepelnek ebben a listában.)
EXE, COM, BAT, LNK, URL, CMD, INF, REG, ISP, BAS, PCD, MST, PIF, SCR, HLP, CHM (csak IE5), HTA (csak IE5), ASP, JS, JSE, VBS, VBE, WS, WSH
Cikkünkben valamennyi itt említett futtatható fájlra vonatkoznak az információk.
A céges intraneteken létezik egy egyszerű hiperlink alternatíva, amely az IFRAME link. Internet oldalakról nem használható ez a metódus, de az Internet Code Download linking módszer igen, amit a későbbiekben bemutatunk.
Az alapértelmezett biztonsági szinteken mindkét módszer dialógusablakot jelenít meg, de ezek vezérelhetők.
Az IFRAME linkelő technika esetében a dialógusablak megjelenik "Running a system command on this item may be unsafe...", és vezérli egy egyedi biztonsági opcióval "Launching programs and files in an IFRAME.". Az Internet Code Download linking technikánál a dialógus ablak megjelenhet, amikor látható lesz a "Do you want to install and run..." és vezérelhető egy egyedi biztonsági opcióval "Download signed ActiveX controls."
A publikus Internetes oldalak nem igénylik a felhasználóktól, hogy bármilyen biztonsági beállításokat használjanak, amikor a weboldalt megnézik. Ezzel szemben azok az oldalak, amelyek módosított biztonságúak, azt kérik, hogy a felhasználó vegye fel az oldalt a megbízott oldalak közé.
IFRAME linkelés
Ezzel a módszerrel a weblap hasznosítja az Internet Explorer tulajdonságát, az Explorer-szerű fájllista nézetet úszó frame-en belül (<IFRAME>). Kövessük ezeket a lépéseket:
- Mozgassuk a fájlokat egy különálló szerverre, megosztásra, és a mappa a céges intraneten legyen elérhető Windows UNC (Uniform Naming Convention) segítségével.
- Hozzunk létre egy különálló mappát minden futtatható fájlhoz, és másoljuk a fájlokat a mappákba. A könyvtárak legyenek üresek, az egyedüli futtatható fájlt kivéve.
- Ahol egy hiperlink a fájlra mutat, helyezzük el az alábbi HTML-t:
Kattintson az ikonra, hogy elindítsa ezt a programot dialógus ablak megjelenítése nélkül:
<IFRAME SRC="\\server\share\directory"></IFRAME>
A HTML kód a mappára mutasson, ne pedig a fájlra, amely a mappában található.
A kijelölt fájl mappája megjelenik egy Explorer-stílusú fájlnézetben. Amikor a felhasználó kattint a fájlon, akkor az olyan, mintha egy Sajátgép ablakban kattintott volna rá.
Internet Code Download linkelés
Ez egy bonyolultabb megoldás, a weblap megkerüli a szokásos fájlletöltő folyamatot az Internet Code Download-ot használva.
Az Internet Code Download az Internet Explorer tulajdonsága, amely lehetővé teszi, hogy a weblapok automatikusan letöltsenek ActiveX vezérlőket és egyéb natív kód-objektumokat. Az Internet Code Download segítségével letöltött fájlok átjutnak az ActiveX biztonsági kereten, amely vezérelhető biztonsági opciók segítségével.
Ha a "futtatható fájl" nem egy aláírható PE (EXE), mint egy .bat fájl, akkor a fájlt .cab fájlba kell csomagolni egy INF segítségével a következő módon:
[version]
signature="$CHICAGO$"
AdvancedINF=2.0
[Add.Code]
file.zzz=file.zzz
[file.zzz]
clsid={15589FA1-C456-11CE-BF01-00AA0055595A}
FileVersion=1,0,0,0
hook=zzzinstaller
[zzzinstaller]
run=%EXTRACT_DIR%\file.zzz
Cseréljük ki a File.zzz-t a futtatni kívánt fájlra.
Bizonyosodjunk meg arról, hogy az EXE (vagy CAB) aláírt kódú. Ha az EXE nem aláírt, akkor ez megtehető a CryptoAPI Authenticode Code Signing eszközökkel.
Használjuk a mellékelt (execlinks.html) példalapot segítségképpen a linkhez.