Jak zkontrolovat Visual InterDev generovaný kód pro chybu zabezpečení CSSI

Překlady článku Překlady článku
ID článku: 253120 - 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.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Souhrn

Následující článek popisuje, jak identifikovat a správné aplikace Visual InterDev, které jsou náchylné k CSSI (cross-site scripting zabezpečení problémy). Umožňuje pouze vstup není správně ověřen nebo formátu aplikace zranitelný vůči útokům.

Tento článek se zaměřuje na Knihovna skriptů a Visual InterDev návrh čas ovládací prvky (DTC). Obecné pokyny týkající se kódu ASP naleznete v následujícím článku znalostní báze Knowledge Base:
253119Jak zkontrolovat kód ASP pro chybu zabezpečení pro CSSI

Další informace

Visual InterDev DTC předložit jedinečný výzvám vývojáři protože některé kód je generován automaticky. Vývojář nemusí být obeznámeni s konkrétní implementaci skriptu objektů, které jsou generovány a jakékoli chyby zabezpečení je nebo jak je nejlepší adresa. Tento článek popisuje známé problémy s různými DTC a také zahrnuje možnosti pro adresování těchto chyb zabezpečení.

Problémy se dělí na dvě zvláštní kategorie:
  1. DTC, které jsou scripted k zobrazení dat z databáze a databáze obsahuje vstup od uživatele.
  2. DTC, které jsou scripted k zobrazení nebo použití dat, která byla odeslána z klienta.
V obou případech kódování výstupu hodnot a řádné ověření zabraňuje stránky založené na DTC v CSSI útoku.

Při použití libovolné metody koordinátor DTC, který načte informace z tohoto koordinátoru DTC (například .getCaption, .getText, .Value) při hodnota byla nastavena pomocí informací o uživateli dodané, výsledný řetězec není HTMLEncoded. Rovněž některé DTC, které mohou být vázány na pole databáze zobrazit bez kódování surového informací z databáze. Jako takové měli byste HTMLEncode tyto hodnoty při zobrazení do prohlížeče. Například:
Response.Write Server.HTMLEncode(Textbox1.value)
				
je-li data mají být použity jako část adresy URL, je vhodnější použít URLEncode. Například:
Response.Write "<A HREF=http://webserver/webapplication/page.asp?data=" & Server.URLEncode(Textbox1.value) & ">Click here!</A>"
				
vzhledem k tomu, že kódování pověřeným skriptovací kód znaky více způsoby, byste měli explicitně nastavit znakovou sadu pro stránku v prohlížeči vykreslí. Lze provést vložením značku klienta <meta>mezi <head>značky z dokumentu. Například:
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset= ISO-LATIN-1">
				
To lze provést také ze stránky ASP pomocí vlastnost Response.Charset vlastnosti:

<% Response.Charset= "ISO-LATIN-1" %>
				


Zde jsou některé běžné příklady:

Zmenšit tuto tabulkuRozšířit tuto tabulku
ZobrazeníUkázkový kód
Hodnota tlačítka koordinátoru DTC
Response.Write Button1.Value()
Titulek CheckBox DTC
Response.Write CheckBox1.getCaption()
Titulek popisek koordinátoru DTC
Response.Write Label1.getCaption()
Znění seznamu DTC
Response.Write Listbox1.getText()
Hodnota skupinu koordinátoru DTC
Response.Write OptionGroup1.getValue()
Hodnota DTC textové pole
Response.Write Textbox1.Value()


Zde jsou řešení pro tyto příklady:

Zmenšit tuto tabulkuRozšířit tuto tabulku
ZobrazeníUkázkový kód
Hodnota tlačítka koordinátoru DTC
Response.Write Server.HTMLEncode(Button1.Value())
Titulek CheckBox DTC
Response.Write Server.HTMLEncode(CheckBox1.getCaption())
Titulek popisek koordinátoru DTC
Response.Write Server.HTMLEncode(Label1.getCaption())
Znění seznamu DTC
Response.Write Server.HTMLEncode(Listbox1.getText())
Hodnota skupinu koordinátoru DTC
Response.Write Server.HTMLEncode(OptionGroup1.getValue())
Hodnota DTC textové pole
Response.Write Server.HTMLEncode(Textbox1.Value())


Mřížka DTC však není HTMLEncode hodnoty, které jsou načteny z databáze. Pokud databázi přijme vstup uživatele (například knihy návštěv), byste měli HTMLEncode výstup. To lze provést klepnutím kartě data v dialogovém okně Vlastnosti tabulky a zadáním příkazu:
=Server.HTMLEncode([fieldname])
				
kde NázevPole je název každého pole, která se zobrazí pro daný sloupec. Většina DTC automaticky HTMLEncode data načíst z databáze při zobrazování; některé nejsou k dispozici. Měl by tyto ovládací prvky použít další kódu a zajistit tak výstup klientovi je správně HTMLEncoded.

Poznámka: DTC obvykle automaticky implementovat logiku nezbytná k udržení jejich stavu během round cest k serveru. U koordinátoru DTC textové pole například po informace kruhové tripped na server stránky knihovny textbox.asp skript správně HTMLEncodes obsah textu pole z procesu zachování stavu ovládacího prvku.

Odkazy

Další informace naleznete v tématu následující z počítač nouzovou Response Team (CERT) na University Mellon Carnegieho informačního zpravodaje:
http://www.cert.org/advisories/CA-2000-02.html
Prosím naleznete v následujících článcích znalostní báze Knowledge Base další informace:
252985Jak zabránit problémy zabezpečení skriptování mezi weby pro webové aplikace
253119Jak zkontrolovat kód ASP CSSI zabezpečení
253121Jak zkontrolovat kód MTS/ASP CSSI zabezpečení
253117Bránící aplikace Internet Explorer a Outlook Express problémy zabezpečení skriptování mezi weby

Vlastnosti

ID článku: 253120 - Poslední aktualizace: 24. ledna 2014 - Revize: 1.4
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Visual InterDev 6.0 Standard Edition
Klíčová slova: 
kbnosurvey kbarchive kbmt kbcssi kbctrl kbhowto kbsecurity kbsecvulnerability KB253120 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:253120

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