Wykonywanie plików przez hiperłącze i okno dialogowe Pobieranie pliku w programie Internet Explorer

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 232077 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

WPROWADZENIE

Wiele witryn sieci Web, szczególnie w intranetach przedsiębiorstw, zawiera hiperłącza do plików, które użytkownik musi wykonywać na komputerze lokalnym. Z oczywistych względów bezpieczeństwa program Internet Explorer nie pozwala, aby kliknięcie hiperłącza powodowało automatyczne uruchomienie jakiegokolwiek pobranego pliku wykonywalnego bądź innego potencjalnie niebezpiecznego pliku bez wyświetlenia odpowiedniego monitu.

W takich sytuacjach wyświetlenie okna dialogowego Pobieranie pliku jest nieuniknione. Wyświetleniu tego okna dialogowego nie można zapobiec przez użycie tagów HTML, skryptu na stronie czy formantu WebBrowser ani przez zmianę opcji strefy zabezpieczeń.

Niestety to okno dialogowe może negatywnie wpływać na interfejs oparty na sieci Web, który używa tego rodzaju łączy w celu ułatwienia korzystania z plików wykonywalnych przechowywanych na serwerze sieci Web. W tym artykule omówiono dwie alternatywne bezpieczne metody automatycznego wykonywania plików przez hiperłącze.

Więcej informacji

Są dwa główne powody, dla których program Internet Explorer wyświetla okno dialogowe Pobieranie pliku: bezpieczeństwo i możliwość wyboru. Ze względów bezpieczeństwa przeglądarka nigdy nie może automatycznie wykonać potencjalnie niebezpiecznego pliku w systemie użytkownika bez możliwości interwencji użytkownika. Ponadto, zamieszczając w witrynie sieci Web tradycyjnie używane łącza do plików wykonywalnych, oczekuje się, że użytkownik zrobi jedną z dwóch rzeczy: wykona plik lub go zapisze. Niestety w specyfikacji języka HTML dotyczącej tagu kotwicy (<A>) ani w bieżącym modelu obiektowym skryptów nie ma mechanizmu, który umożliwiałby witrynie sieci Web wskazanie, jaka czynność jest oczekiwana w przypadku danego łącza. Dlatego ciężar wyboru spoczywa na użytkowniku. To on musi zdecydować, czy chce plik uruchomić, czy zapisać.

W programie Internet Explorer decyzja, czy ma zostać wyświetlone okno dialogowe Pobieranie pliku, zapada głównie w wyniku sprawdzenia rozszerzenia pliku i wyszukania w rejestrze aplikacji służącej do jego odczytywania. W przypadku większości typów plików użytkownik może wyczyścić opcję Zawsze pytaj przed otwarciem pliku tego typu w tym oknie dialogowym, udzielając w ten sposób programowi Internet Explorer zezwolenia na niewyświetlanie w przyszłości tego okna dialogowego w związku z plikami danego typu. Użytkownik może również zmienić to ustawienie przez wyczyszczenie pola wyboru Potwierdź otwarcie po pobraniu w oknie dialogowym Edytowanie typu pliku dostępnym z okna dialogowego Opcje folderów powłoki.

Jednak program Internet Explorer zawiera wstępnie zdefiniowaną, ustaloną listę rozszerzeń plików, którym z natury nie ufa. Rozszerzenia te odpowiadają rodzajowym plikom wykonywalnym i innym rodzajom plików, które mogą wyrządzić szkodę komputerowi użytkownika w przypadku braku właściwych zabezpieczeń. W przypadku żadnych plików tego typu nie można zapobiec wyświetleniu okna dialogowego Pobieranie pliku. Opcja Zawsze pytaj przed otwarciem pliku tego typu jest dla nich wyszarzona w tym oknie dialogowym i użytkownik nie może jej zaznaczyć. Oto lista rozszerzeń plików tego typu:
Zwiń tę tabelęRozwiń tę tabelę
adecshlnkmdapifvb
adpexemadmdbprfvbe
appfxpmafmdeprgvbs
asphlpmagmdtpstvsd
bashtamammdwregvsmacros
batinfmaqmdzscfvss
cerinsmarmscscrvst
chmispmasmsisctvsw
cmditsmatmspshbws
comjsmaumstshswsc
cpljsemavopstmpwsf
crtkshmawpcdurlwsh
W niniejszym artykule przyjęto konwencję, że pliki tego typu są nazywane plikami „wykonywalnymi”.

Rozważmy teraz scenariusz prostej witryny sieci Web w intranecie przedsiębiorstwa, która zawiera listę łączy do plików wykonywalnych na przyjaznej stronie sieci Web. Łącza te prowadzą do plików, które z założenia mają być pobierane i natychmiast wykonywane. Biorąc pod uwagę, że bezpieczeństwo tych plików wykonywalnych jest najprawdopodobniej gwarantowane przez przedsiębiorstwo (w zakresie, w jakim może być bezpieczny jakikolwiek inny typowy program komputerowy), konieczność uporania się za każdym razem z oknem dialogowym Pobieranie pliku byłaby dla użytkownika niezwykle uciążliwa, szczególnie jeśli ta strona jest używana codziennie.

Program Internet Explorer będzie wyświetlał okno dialogowe Pobieranie pliku nawet wtedy, gdy pliki wykonywalne zostały podpisane i użytkownik ufa podpisującemu. Co gorsza, ta niedogodność dotyczy również hiperłączy UNC systemu Windows — hiperłączy „\\serwer\udział”, które omijają serwer sieci Web.

W przypadku intranetów przedsiębiorstw istnieje alternatywa wobec czystych hiperłączy, zwana w tym artykule łączeniem typu IFRAME. W przypadku witryn internetowych nie można zastosować tej metody, ale można zastosować metodę zwaną w tym artykule łączeniem typu Pobieranie kodu internetowego. (Ta druga metoda jest dostępna również dla przedsiębiorstw).

Uwaga W przypadku domyślnych poziomów zabezpieczeń zastosowanie każdej z tych metod powoduje, że nadal są wyświetlane okna dialogowe zabezpieczeń. Jednak w odróżnieniu od kłopotliwego okna dialogowego Pobieranie pliku, wyświetlaniem wszystkich tych okien dialogowych zabezpieczeń można sterować za pomocą standardowych opcji zabezpieczeń opartych na strefach. W przypadku metody łączenia typu IFRAME okno dialogowe, które może być wyświetlane, zawiera tekst „Uruchomienie polecenia systemowego dla tego elementu może być niebezpieczne...”, a do sterowania tym oknem dialogowym służy niestandardowa opcja zabezpieczeń Uruchamianie programów i plików w ramce IFRAME. W przypadku metody łączenia typu Pobieranie kodu internetowego okno dialogowe, które może być wyświetlane, zawiera tekst „Czy chcesz zainstalować i uruchomić...”, a do sterowania tym oknem dialogowym służy niestandardowa opcja zabezpieczeń Pobierz podpisane formanty ActiveX.

W przypadku użycia opisanych w tym artykule metod w środowisku intranetu zdecydowanie zaleca się, aby te zmiany ustawień zostały zatwierdzone i wprowadzone dla wszystkich użytkowników witryny sieci Web przez administratorów przedsiębiorstwa. Zestaw IEAK (Internet Explorer Administration Kit) zapewnia administratorom prosty mechanizm sterowania takimi ustawieniami przeglądarki i ich propagacji. Aby uzyskać więcej informacji, odwiedź następującą witrynę TechNet firmy Microsoft w sieci Web:
http://www.microsoft.com/technet/prodtechnol/ie/ieak/default.mspx
Publiczne witryny internetowe nie powinny wymagać od użytkowników dokonywania zmian jakichkolwiek ustawień zabezpieczeń w celu umożliwienia wyświetlenia witryny sieci Web. W zamian witryna wymagająca zmienionych zabezpieczeń powinna żądać, aby użytkownik dodał ją do listy „Zaufane witryny” na stronie właściwości zabezpieczeń Opcje internetowe. Taka witryna działałaby następnie w kontekście wystarczająco niskiego poziomu zabezpieczeń, aby w przypadku obu metod opisanych w tym artykule nie były wyświetlane monity.

Łączenie typu IFRAME

W przypadku tej alternatywy strona sieci Web wykorzystuje możliwość wyświetlania przez program Internet Explorer widoków listy plików w stylu Eksploratora wewnątrz swobodnych ramek (<IFRAME>). Wykonaj następujące kroki:
  1. Przenieś pliki do specjalnej lokalizacji serwer\udział\katalog, do której wszyscy określeni użytkownicy mają uprawnienia dostępu za pośrednictwem hiperłącza UNC systemu Windows.
  2. Utwórz osobny katalog dla każdego pliku wykonywalnego i skopiuj pliki do tych katalogów. Każdy z tych katalogów powinien zawierać tylko jeden plik wykonywalny.
  3. Tam, gdzie będzie używane hiperłącze do pliku wykonywalnego, dołącz kod HTML w następującej postaci:
    Kliknij ikonę w następującym oknie, aby uruchomić ten specjalny
    program automatycznie, bez wyświetlania irytujących okien dialogowych:
    
    <IFRAME SRC="\\serwer\udział\katalog"></IFRAME>
    						
    Należy zauważyć, że ten kod HTML wskazuje katalog, w którym znajduje się plik, a nie sam plik.
Dany katalog jest wyświetlany przy użyciu widoku plików w stylu Eksploratora. Gdy użytkownik kliknie ikonę w tym widoku, plik zostanie wykonany tak, jakby użytkownik kliknął ikonę pliku w tradycyjnym oknie Eksploratora Windows.

Łączenie typu Pobieranie kodu internetowego

W przypadku tej złożonej metody alternatywnej strona sieci Web omija zwykły proces pobierania pliku, wykorzystując funkcję Pobieranie kodu internetowego. Pobieranie kodu internetowego to funkcja programu Internet Explorer, która umożliwia stronom sieci Web automatyczne pobieranie formantów ActiveX i innych obiektów kodu macierzystego. Pliki uzyskane za pośrednictwem funkcji Pobieranie kodu internetowego przechodzą przez strukturę zabezpieczeń ActiveX, którą można sterować za pomocą opcji zabezpieczeń.
  1. Jeśli „plik wykonywalny” nie jest elementem nadającym się do podpisania (exe), na przykład jest to plik bat, to musi zostać spakowany w pliku cab razem z plikiem INF w następującej postaci:
    [version]
       signature="$CHICAGO$"
       AdvancedINF=2.0
    [Add.Code]
       plik.zzz=plik.zzz
    [plik.zzz]
       clsid={15589FA1-C456-11CE-BF01-00AA0055595A}
       FileVersion=1,0,0,0
       hook=zzzinstaller
    [zzzinstaller]
       run=%EXTRACT_DIR%\plik.zzz
    						
    Nazwę plik.zzz powyżej należy zastąpić nazwą pliku wykonywalnego, który ma zostać uruchomiony.

    Aby uzyskać więcej informacji na temat pakowania pliku cab, odwiedź następującą witrynę usługi MSDN (Microsoft Developer Network) w sieci Web:
    http://msdn.microsoft.com/workshop/delivery/download/tutorials/button_download.asp
  2. Upewnij się, że plik exe (lub cab) jest podpisany kodem. Jeśli plik exe nie jest podpisany, można go podpisać za pomocą narzędzi CryptoAPI Authenticode Code Signing. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją interfejsu CryptoAPI w zestawie MSDN Platform SDK, w części „Security”.

    Ze względów bezpieczeństwa proces podpisywania dla organizacji powinien przeprowadzić centralny urząd, któremu ufa cała organizacja. Podpisywanie kodem wymaga albo nabycia kosztownych certyfikatów od zewnętrznych dostawców, takich jak firma VeriSign, albo utrzymywania w intranecie serwera certyfikatów, takiego jak Microsoft Certificate Server.
  3. Następującej prostej strony można użyć jako wskazówki pomocnej w utworzeniu łącza i skryptu, które są niezbędne do uruchomienia podpisanego kodu bez wyświetlania monitu:
    <HTML><HEAD><TITLE>Strona wykonywalnych łączy</TITLE></HEAD>
    <BODY>
    <BR/>
    
    <!-- hiperłącze używa centralnej funkcji skryptu, zwanej linkit() -->
    <A HREF="" onclick="return linkit('podpisany_plik_testowy.exe');">
    SIGNED-CLOCK.EXE</A>
    
    <SCRIPT>
    // funkcja linkit dołącza nazwę pliku do zawartości HTML i umieszcza ją w ramce iframe
    function linkit(nazwa_pliku)
    {
       strpagestart = "<HTML><HEAD></HEAD><BODY><OBJECT CLASSID=" +
          "'CLSID:15589FA1-C456-11CE-BF01-00AA0055595A' CODEBASE='";
       strpageend = "'></OBJECT></BODY></HTML>";
       runnerwin.document.open();
       runnerwin.document.write(strpagestart + nazwa_pliku + strpageend);
       window.status = "Gotowe.";
       return false;  // zatrzymanie hiperłącza i pozostanie na tej stronie
    }
    </SCRIPT>
    
    <!-- ukryta ramka iframe używana do wstawienia zawartości html -->
    <IFRAME ID=runnerwin WIDTH=0 HEIGHT=0 SRC="about:blank"></IFRAME><BR/>
    
    </BODY></HTML>
    					
Produkty innych firm omówione w tym artykule są wytwarzane przez producentów niezależnych od firmy Microsoft. Firma Microsoft nie udziela żadnych gwarancji, dorozumianych ani żadnego innego rodzaju, odnośnie do wydajności lub niezawodności tych produktów.

Właściwości

Numer ID artykułu: 232077 - Ostatnia weryfikacja: 13 czerwca 2007 - Weryfikacja: 3.0
Informacje zawarte w tym artykule dotyczą:
  • Microsoft Internet Explorer 4.0 (128-bitowy)
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 4.01 Service Pack 1
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 5.0
  • Microsoft Internet Explorer 5.5
  • Microsoft Internet Explorer 6.0
Słowa kluczowe: 
kbinfo kbnavigation kbsecurity kbdhtml KB232077

Przekaż opinię

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com