Po použití zabezpečení zmizí SSI výstup

Překlady článku Překlady článku
ID článku: 318176 - Produkty, které se vztahují k tomuto článku.
Tento článek byl archivován. Je nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.
Důrazně doporučujeme, aby všichni uživatelé upgradovat Internetová informační služba (IIS) verze 7.0 systémem Microsoft Windows Server 2008. IIS 7.0 výrazně zvyšuje zabezpečení webové infrastruktury. Další informace o tématech souvisejících se zabezpečením Internetové informační služby naleznete na následujícím webu společnosti Microsoft:
http://www.microsoft.com/technet/security/prodtech/IIS.mspx
Další informace o službě IIS 7.0 naleznete na následujícím webu:
http://www.iis.net/default.aspx?tabid=1
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

Spustit program začlenění na straně serveru (SSI) pomocí <!--# exec cgi--> použita příkaz na serveru je spuštěna buď Microsoft Windows NT 4.0 Service Pack 4 (SP4) nebo novější nebo Windows 2000 Service Pack) 2 nebo novější použity výstupní program nezobrazí na stránce. Pokud spustíte program stejné bez opravy zabezpečení serveru, zobrazí se výstup podle očekávání.

Příčina

Po použití těchto balíky určené služby SSI libovolného programu, které provedeny pomocí očekává Internetová informační služba (IIS) <!--# exec cgi--> příkaz postupujte specifikace Common Gateway Interface (CGI). Tuto specifikaci vyžaduje programy CGI vytisknout záhlaví Content-Type HTTP před jakýkoli výstup. IIS bezobslužně ignoruje toto záhlaví a odebere z výstupu konečné program, který zobrazuje na stránce. Pokud SSI program toto záhlaví neobsahuje, IIS spustí program, ale nezobrazuje žádné jeho výstup. Toto je změnit z chování předchozí verze systému Windows, které nevyžadují tato záhlaví a které na stránce před zbývající výstup z aplikace SSI zobrazit libovolné zahrnuty záhlaví HTTP.

Řešení

Můžete provést výstup se zobrazí v jednom ze dvou způsobů:
  1. Spustit program pomocí <!--# exec cmd--> příkazu namísto <!--# exec cgi--> příkazu. Nebo

  2. Revize program vytisknout následující řádek následovaný dva nové řádky, před jakýkoli výstup:
    Typ obsahu: text/html

Prohlášení

Toto chování je záměrné.

Další informace

Povolit SSIs, postupujte takto:
  1. Spustit Internet Service Manager (ISM), které načte snap-in konzola Microsoft Management Console (MMC) služby IIS.
  2. V MMC poklepejte na název počítače v levém podokně.
  3. Poklepejte na webu, pro které chcete povolit SSI.
  4. Klepněte pravým tlačítkem myši na virtuální adresář obsahující soubory SSI povoleny. Povolení SSI pro domovský adresář webového serveru, klepněte pravým tlačítkem myši na webový server.
  5. Klepněte na příkaz Vlastnosti a klepněte na kartu Domovský adresář.
  6. Ve skupinovém rámečku oprávnění spouštění klepnutím vyberte skripty a spustitelné soubory.
  7. Klepněte na tlačítko OK. Ujistěte se, že vyberte adresářů obsahujících soubory SSI povoleny v obrazovce Potlačení dědičnosti.Další informace o povolení <!--# exec cmd--> příkaz, klepněte na článek číslo článku databáze Microsoft Knowledge Base:
    233969SSIEnableCmdDirective je nastaven na NEPRAVDA ve výchozím nastavení

Kroky pro reprodukci tohoto chování

  1. Povolení začlenění na straně serveru domovského adresáře výchozího webového serveru.
  2. Kompilovat následující C program na bez opravy zabezpečení serveru Windows NT 4.0 nebo Windows 2000:
    #include <stdio.h>
    int main(int argc, char **argv) {
      printf("Hello World\n");
    
    }
  3. Název spustitelného souboru helloworld.exe a umístit soubor v kořenovém adresáři serveru WWW. Ve výchozím nastavení je tento adresář C:\Inetpub\Wwwroot.
  4. Vytvořit následující stránky HTML SSI povoleny a pak stránku uložit jako Ssitest.shtm v kořenovém adresáři serveru:
    <HTML><BODY>
    Exec cmd: <!--#exec cmd="c:\inetpub\wwwroot\HelloWorld.exe"--><BR>
    Exec cgi: <!--#exec cgi="/HelloWorld.exe"-->
    </BODY></HTML>
  5. Procházet http://localhost/ssitest.shtm v počítači se systémem Windows NT 4.0 Service Pack 3 (SP3) nebo starší nebo Service Pack 1 (SP1) nebo starší. Viz následující:
    Exec cmd: Hello World
    Exec cgi: Hello World
  6. Použít Windows NT 4.0 SP4 nebo novější nebo Windows 2000 SP2 nebo novější v počítači.
  7. Vyhledejte http://localhost/ssitest.shtm znovu. Nyní naleznete v následující:
    Exec cmd: Hello World
    Exec cgi:
  8. Upravte kód helloworld.exe nejprve vytisknout záhlaví Content-Type a překompilovat soubor:
    #include <stdio.h>
    int main(int argc, char **argv) {
      printf("Content-type: text/html\n");
      printf("Hello World\n");
    
    }
  9. Znovu načíst http://localhost/ssitest.shtm v počítači se systémem Windows NT 4.0 SP4 nebo novější nebo Windows 2000 SP2 nebo novější. Nyní naleznete v následující:
    Exec cmd: Content-type: text/html
     Hello World
    Exec cgi: Hello World
    Poznámka, na rozdíl od <!--# exec cgi--> příkazu <!--# exec cmd--> příkaz neodstraní žádné CGI záhlaví z výstupu.

Odkazy

Další informace o SSIs tématu "Začlenění na straně serveru" v online dokumentaci IIS. Toto téma zobrazit, vyhledejte správy, vyhledejte Správa webů a vyhledejte Začlenění na straně serveru. Dokumentace online ke službě IIS je přístupné prostřednictvím následujících URL z libovolného počítače s dokumentaci IIS nainstalován:
http://localhost/iishelp

Vlastnosti

ID článku: 318176 - Poslední aktualizace: 14. února 2014 - Revize: 3.1
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Internet Information Services 5.0
  • Microsoft Internet Information Server 4.0
Klíčová slova: 
kbnosurvey kbarchive kbmt kbpending kbprb KB318176 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:318176

Dejte nám zpětnou vazbu

 

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