Sada pravidel Pravidla zabezpečení pro spravovaný kód
Sadu pravidel zabezpečení společnosti Microsoft byste měli zahrnout pro maximální počet hlášených potenciálních problémů zabezpečení.
Pravidlo |
Description |
---|---|
Zkontrolujte dotazy SQL pro chyby zabezpečení |
|
Zachycujte výjimky bez CLSCompliant v obecných obslužných rutinách |
|
Zkontrolujte naléhavé zabezpečení |
|
Nedeklaruje proměnlivé odkazové typy pouze pro čtení |
|
Pole polí by neměla být pouze pro čtení |
|
Zabezpečte výrazy |
|
Zkontrolujte použití odepřít a pouze povolit |
|
Zkontrolujte deklarativní zabezpečení na hodnotových typech |
|
Zkontrolujte viditelné obslužné rutiny událostí |
|
Ukazatele by neměly být viditelné |
|
Zabezpečené typy by neměly vystavovat pole |
|
Zabezpečení metody by mělo být nadmnožinou typu |
|
Volejte GC.KeepAlive při použití nativních zdrojů |
|
Metody APTCA by měly volat pouze metody APTCA |
|
Typy APTCA by měly rozšiřovat pouze základní typy APTCA |
|
Zkontrolujte použití atributu SuppressUnmanagedCodeSecurityAttribute |
|
Zapečeťte metody, které vyhovují privátním rozhraním |
|
Zabezpečte konstruktory serializace |
|
Statické konstruktory by měly být privátní |
|
Nezveřejňujte nepřímo metody s požadavky propojení |
|
Požadavky odkazu přepisu by měly být shodné se základem |
|
Zabalte ohrožené klauzule finally do vnějšího bloku try |
|
Požadavky propojení typů vyžadují požadavky dědičnosti |
|
Důležité bezpečnostní konstanty by měly být průhledné |
|
Důležité typy zabezpečení se nemusí účastnit rovnocennosti typu |
|
Výchozí konstruktory musí být alespoň tak kritické jako výchozí konstruktory základního typu |
|
Delegáti musí navázat na metody s konzistentní transparentností |
|
Metody musí při přepisu základních metod zachovat konzistentní transparentnost |
|
Sestavení úrovně 2 by neměla obsahovat LinkDemands |
|
Členové by neměli mít kolidující anotace průhlednosti |
|
Transparentní metody musí obsahovat pouze ověřitelné IL |
|
Transparentní metody nesmí volat metody s atributem SuppressUnmanagedCodeSecurity |
|
Transparentní metody nemohou používat atribut HandleProcessCorruptingExceptions |
|
Transparentní kód nesmí odkazovat na důležité položky zabezpečení |
|
Transparentní metody nesmí splňovat LinkDemands |
|
Transparentní kód by neměl být chráněn pomocí LinkDemands |
|
Transparentní metody by neměly používat požadavky zabezpečení |
|
Transparentní kód by neměl načítat sestavení z pole bajtů |
|
Transparentní metody by neměly používat atribut SuppressUnmanagedCodeSecurityAttribute |
|
Typy musí být alespoň tak kritické jako jejich rozhraní a základní typy |
|
Transparentní metody nemohou používat bezpečnostní vyhodnocení |
|
Transparentní metody nesmí volat do nativního kódu |
|
Sestavení by měla mít platné silné názvy |