Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Uživatelská data, což je jakýkoli druh vstupu (data z webového požadavku nebo adresy URL, vstup do ovládacích prvků aplikace Microsoft Windows Forms atd.), mohou nepříznivě ovlivnit kód, protože často se tato data používají přímo jako parametry pro volání jiného kódu. Tato situace je podobná škodlivému kódu, který volá váš kód s podivnými parametry, a měli byste přijmout stejná opatření. Uživatelský vstup je ve skutečnosti obtížnější zabezpečit, protože neexistuje žádný zásobníkový rámec pro sledování přítomnosti potenciálně nedůvěryhodných dat.
Patří mezi nejmenší a nejtěsnější chyby zabezpečení, které je možné najít, protože i když můžou existovat v kódu, který zdánlivě nesouvisí se zabezpečením, představují bránu pro předávání chybných dat do jiného kódu. Pokud chcete tyto chyby vyhledat, postupujte podle libovolného typu vstupních dat, představte si, jaký rozsah možných hodnot může být, a zvažte, jestli kód, který tato data vidí, dokáže zpracovat všechny tyto případy. Tyto chyby můžete opravit prostřednictvím kontroly rozsahu a odmítnutí jakéhokoli vstupu, který kód nedokáže zpracovat.
Mezi důležité aspekty týkající se uživatelských dat patří:
Veškerá uživatelská data v odpovědi serveru se spouští v kontextu lokality serveru v klientovi. Pokud váš webový server vezme uživatelská data a vloží je na vrácenou webovou stránku, může například obsahovat
<script>značku a být spuštěn, jako by běžel na serveru.Nezapomeňte, že klient může požádat o libovolnou adresu URL.
Zvažte složité nebo neplatné cesty:
.. \ , extrémně dlouhé cesty.
Použití zástupných znaků (*).
Rozšíření tokenu (%token%).
Podivné formy cest se zvláštním významem.
Alternativní názvy datových proudů systému souborů, například
filename::$DATA.Krátké verze názvů souborů, například
longfi~1prolongfilename.
Mějte na paměti, že Eval(userdata) může dělat cokoli.
Dávejte pozor na pozdní vazbu na jméno, které obsahuje některá uživatelská data.
Pokud pracujete s webovými daty, zvažte různé formy úniků, které jsou přípustné, včetně:
Šestnáctkové úniky (%nn).
Úniky Unicode (%nnn).
Dlouhé únikové sekvence UTF-8 (%nn%nn).
Dvojité únikové sekvence (%nn se změní na %mmnn, kde %mm je escape pro '%').
Dávejte pozor na uživatelská jména, která mohou mít více než jeden kanonický formát. Můžete například často použít formulář MYDOMAIN\uživatelské_jméno nebo uživatelské_jméno@mydomain.example.com formulář.