Jak zabránit problémů zabezpečení skriptování mezi servery

Překlady článku Překlady článku
ID článku: 252985 - Produkty, které se vztahují k tomuto článku.
Poznámka
Tento článek se týká systému Windows 2000. Podporu pro systém Windows 2000 končí na 13. července 2010.Windows 2000 End-of-Support Solution Center je výchozí bod pro plánování strategie přenesení ze systému Windows 2000. Další informace v tématu Microsoft Support Lifecycle Policy.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Stránky HTML dynamicky generovaných lze zavádět rizika zabezpečení, pokud vstupů není ověřena buď na způsobem v nebo způsob out. Škodlivý skript může být vložen v rámci vstup je odeslán webových stránek a zobrazí prohlížečů jako pocházející z důvěryhodného zdroje. Tento problém je označován jako problém zabezpečení skriptování mezi servery. Tento článek popisuje problémů zabezpečení skriptování mezi servery, strukturu a zabránění.

Další informace

K tomuto problému

Podkladové problém je mnoho webových stránek zobrazit vstup není ověřena. Vstup není ověřen, může být v rámci vstupní vložen škodlivý skript. Pokud skript na straně serveru potom zobrazí tento vstup není ověřena, bude skript spuštěn na prohlížeči, jako by jej generovány důvěryhodný web.

Následky

Vstup dynamické webové stránky není ověřena, mohou nastat následující problémy:
  • Integrita dat může být ohroženo.
  • Soubory cookie můžete nastavit a číst.
  • Vstup uživatele může být zachycen.
  • Škodlivé skripty mohou být provedeny podle klienta v kontextu důvěryhodný zdroj.
Které webových stránek jsou ohroženy? V podstatě problém ovlivňuje vytváření dynamické stránky založené na vstup nebyl ověřen. Typické příklady zahrnout následující typy webových stránek:
  • Vyhledávací stroje vrátit výsledky stránky na základě vstupu uživatele.
  • Přihlašovací stránky, které ukládání uživatelských účtů v databázích, soubory cookie a tak dále a později zápisu uživatelské jméno klienta.
  • Webové formuláře zpracování informací o kreditní kartě.

Ochrana

Tato část nabízí několik přístupy k zabránění útokům zabezpečení skriptování mezi servery. Vyhodnotit konkrétní situaci určit techniky, které fungují nejlépe. Je důležité poznamenat, jsou ověření v všechny techniky dat, které obdržíte z vstup a není důvěryhodný skriptu. Zabránění v podstatě znamená postupujte vhodné kódování spuštěním kontroly sanity na vstupu na vaše rutiny.

Následující seznam uvádí obecné přístupy zabránit útoky prostřednictvím skriptování mezi servery:
  • Kódovat výstup na základě vstupní parametry.
  • Filtr vstupních parametrů speciální znaky.
  • Výstup filtru na základě vstupní parametry speciální znaky.
Při filtrování nebo kódovat musíte určit znakovou sadu pro webové stránky zajistit kontroluje váš filtr pro příslušný speciální znaky. Data je vložen do webových stránek byste odfiltrovat bajt sekvence, které jsou považovány za zvláštní založené na určitou znakovou sadu. Populární charset je ISO 8859-1, která byla výchozí v dřívějších verzích HTML a HTTP. Při změně těchto parametrů je nutné provést do účtu lokalizace problémy.

Kódovat výstup na základě vstupní parametry speciální znaky

Zakódování dat je přijat jako vstup při zápisu jako HTML. Tato technika je účinná na nebyl ověřen z nějakého důvodu během vstupní data. Pomocí technik, jako například URLEncode a HTMLEncode můžete zabránit v provádění škodlivý skript.

Následující fragmenty kódu demonstrují použití URLEncode a HTMLEncode ze stránek ASP (Active Server Pages):
<%
      var BaseURL = http://www.mysite.com/search2.asp?searchagain=;
      Response.write("<a href=\"" + BaseUrl +
      Server.URLEncode(Request.QueryString("SearchString")) +
      "\">click-me</a>");
%>
<% Response.Write("Hello visitor <I>" +
      Server.HTMLEncode(Request.Form("UserName")) +
      "</I>");
%>
				
Pokud kódování HTML a URL může být nutné zadat kód stránky, jako by byly filtrovat data.

Je důležité Všimněte si, že volání HTMLEncode na řetězec, který je o zobrazený zabráníte žádný skript v ní z prováděný a tedy zabraňuje problému.

Filtrovat vstupní parametry speciální znaky

Filtrování vstup funguje odebráním některých nebo všech zvláštních znaků z váš vstup. Speciální znaky jsou znaky povolení skriptu generována v rámci proudu HTML. Speciální znaky patří následující:
< > " ' % ; ) ( & + -
				
Poznámka, může situaci jednotlivé důvod filtrování další znaky nebo řetězce za speciální znaky.

Při filtrování může být efektivní technika, jsou několik výhradami:
  • Filtrování pravděpodobně není vhodný pro některé vstup. Například v situacích, kde jsou příjem <text>vstupu z formuláře HTML, může místo toho zvolíte metodu, jako je například kódování (viz níže).
  • Některé znaky filtrované ve skutečnosti může být vyžadován vstup skriptu na straně serveru.
Následující ukázkový filtr, který je napsán JavaScript, ukazuje, jak odebrat speciální znaky:
function RemoveBad(strTemp) { 
    strTemp = strTemp.replace(/\<|\>|\"|\'|\%|\;|\(|\)|\&|\+|\-/g,""); 
    return strTemp;
} 
				
následující kód zpracovává vstup uživatele před uložením pro pozdější použití.
<% Session("StoredPreference") = RemoveBad(Request.Cookies("UserColor"));
         var TempStr = RemoveBad(Request.QueryString("UserName"));				

Výstup filtru na základě vstupní parametry speciální znaky

Tento postup je podobný filtrování vstup s tím rozdílem, že filtr znaky, které jsou zapisovány do klienta. To mohou být efektivní technika, jej mohou prezentovat problém pro zápis mimo prvků HTML webové stránky.

Například na stránce zapíše <TABLE>prvky obecný funkce, která odebere speciální znaky by odstranit < a > znaků, ruins značku <TABLE>. Proto v pořadí pro tuto techniku být užitečné by pouze filtr předaný dat nebo dat, který byl zadán uživatelem dříve a uloženy v databázi.

Možných zdrojů škodlivý dat

Zatímco problém se vztahuje na stránku, která používá vstupní dynamicky generovat HTML, jsou následující některé možných zdrojů škodlivý data pomoci přímé zaškrtnutí pro potenciální rizika zabezpečení:
  • Řetězec dotazu
  • soubory cookie
  • Zaúčtované dat
  • URL a kusů URL, například PATH_INFO
  • Data načtená z uživatelů trvala některé způsobem, jako například v databázi

Závěr

Conclusion jsou následující klíčové body týkající se problém zabezpečení skriptování mezi servery nezapomeňte:
  • Problém ovlivňuje vytváření dynamické stránky založené na vstup nebyl ověřen.
  • Vynechání sanity Kontrola na vstupních dat může mít neočekávané zabezpečení důsledky. Problém je preventable prostřednictvím dobré vývojové standardy jako je například ověření vstupu.
  • Je třeba vyhodnotit řešení na na jeden web, stránce a dokonce základ pole a použít technika smysl.

Odkazy

Další informace naleznete v následujících zpravodaj z počítač Emergency Response Team (CERT) na univerzity Carnegie Mellon:
http://www.cert.org/advisories/CA-2000-02.html
Další informace naleznete v následujících článcích znalostní báze Microsoft Knowledge Base:
253117Preventing Internet Explorer a Outlook Express více webů skriptování problémy zabezpečení
253119Jak zkontrolovat kód ASP chybu CSSI
253120Jak zkontrolovat Visual InterDev generovaný kód pro chybu zabezpečení CSSI
253121Jak zkontrolovat kód MTS/ASP chyba CSSI

Vlastnosti

ID článku: 252985 - Poslední aktualizace: 1. března 2006 - Revize: 3.6
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Active Server Pages 2.0
  • Microsoft Active Server Pages 3.0
  • Microsoft Windows 2000 Server
Klíčová slova: 
kbmt kbcodesnippet kbcssi kbhowto kbsecurity KB252985 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:252985

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