VB.NET Scan rules
Contrast Scan supports these rules for VB.NET.
Severity | Contrast rule | Engine rule ID | Description |
---|---|---|---|
Critical | Too Much Origins Allowed | OPT.VBNET.TooMuchOriginsAllowed | TooMuchOriginsAllowed: CORS policy (Cross-origin resource sharing) too broad |
Critical | Code Injection | OPT.VBNET.CodeInjection | CodeInjection: Improper Control of Generation of Code ('Code Injection') |
Critical | Code Injection With Deserialization | OPT.VBNET.CodeInjectionWithDeserialization | CodeInjectionWithDeserialization: Dynamic code injection during object deserialization |
Critical | Command Injection | OPT.VBNET.CommandInjection | CommandInjection: Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') |
Critical | Cross Site Scripting | OPT.VBNET.CrossSiteScripting | CrossSiteScripting: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') |
Critical | DoS Regexp | OPT.VBNET.DoSRegexp | DoSRegexp: Prevent denial of service attack through malicious regular expression |
Critical | Ldap Injection | OPT.VBNET.LdapInjection | LdapInjection: Avoid non-neutralized user-controlled input in LDAP search filters |
Critical | Connection String Parameter Pollution | OPT.VBNET.SEC.ConnectionStringParameterPollution | ConnectionStringParameterPollution: Connection string polluted with untrusted input |
Critical | Http Parameter Pollution | OPT.VBNET.SEC.HttpParameterPollution | HttpParameterPollution: HTTP parameter pollution (HPP) |
Critical | Http Splitting Rule | OPT.VBNET.SEC.HttpSplittingRule | HttpSplittingRule: Improper neutralization of CR/LF Sequences in HTTP headers |
Critical | Mail Command Injection | OPT.VBNET.SEC.MailCommandInjection | MailCommandInjection: Mail Command Injection |
Critical | No SQL Injection | OPT.VBNET.SEC.NoSQLInjection | NoSQLInjection: Improper neutralization of special elements in data query logic (NoSQL injection) |
Critical | Process Control | OPT.VBNET.SEC.ProcessControl | ProcessControl: Do not load executables or libraries from untrusted sources |
Critical | Registry Manipulation | OPT.VBNET.SEC.RegistryManipulation | RegistryManipulation: Registry manipulation |
Critical | Server Side Request Forgery | OPT.VBNET.ServerSideRequestForgery | ServerSideRequestForgery: Server-Side Request Forgery (SSRF) |
Critical | SQL Injection | OPT.VBNET.SqlInjection | SqlInjection: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') |
Critical | Stored Cross Site Scripting | OPT.VBNET.StoredCrossSiteScripting | StoredCrossSiteScripting: Web content generation from improper sanitized database data and escaped output (Stored Cross-site Scripting, XSS) |
Critical | MVC Non Action Public Methods | OPT.VBNET.MVCNonActionPublicMethods | MVCNonActionPublicMethods: Protect public methods that are not action methods in controllers |
Critical | Path Traversal | OPT.VBNET.PathTraversal | PathTraversal: Avoid non-neutralized user-controlled input composed in a pathname to a resource |
Critical | Accessibility Subversion Rule | OPT.VBNET.SEC.AccessibilitySubversionRule | AccessibilitySubversionRule: .Net access restriction subverted (Reflection) |
Critical | Anonymous Ldap Bind | OPT.VBNET.SEC.AnonymousLdapBind | AnonymousLdapBind: Access Control - Anonymous LDAP Bind |
Critical | Dangerous File Upload | OPT.VBNET.SEC.DangerousFileUpload | DangerousFileUpload: Unrestricted Upload of File with Dangerous Type |
Critical | Static Database Connection | OPT.VBNET.SEC.StaticDatabaseConnection | StaticDatabaseConnection: Static database connection / session |
Critical | Temporary Files Left | OPT.VBNET.SEC.TemporaryFilesLeft | TemporaryFilesLeft: Temporary files not deleted |
Critical | COM With Param Constructors | OPT.VBNET.VBnet.COMWithParamConstructors | COMWithParamConstructors: Avoid COM visible attribute in parameterized constructors |
Critical | Dispose Finalize Throws Ex | OPT.VBNET.VBnet.DisposeFinalizeThrowsEx | DisposeFinalizeThrowsEx: Avoid throwing exception in constructors, Dispose or Finalize |
Critical | Dispose Objects Before Losing Scope | OPT.VBNET.VBnet.DisposeObjectsBeforeLosingScope | DisposeObjectsBeforeLosingScope: Dispose objects before losing scope |
Critical | Do Not Dispose Objects Multiple Times | OPT.VBNET.VBnet.DoNotDisposeObjectsMultipleTimes | DoNotDisposeObjectsMultipleTimes: Possible multiple calls to 'Dispose' over an object |
Critical | Do Not Use Idle Process Priority | OPT.VBNET.VBnet.DoNotUseIdleProcessPriority | DoNotUseIdleProcessPriority: Do not use idle process priority |
Critical | Mark I Serializable Types With Serializable | OPT.VBNET.VBnet.MarkISerializableTypesWithSerializable | MarkISerializableTypesWithSerializable: Specify the Serializable attribute in ISerializable classes |
Critical | Mark Windows Forms Entry Points With Sta Thread | OPT.VBNET.VBnet.MarkWindowsFormsEntryPointsWithStaThread | MarkWindowsFormsEntryPointsWithStaThread: Mark Windows Forms entry points with STAThread |
Critical | Weak Cryptographic Hash | OPT.VBNET.WeakCryptographicHash | WeakCryptographicHash: Weak cryptographic hash |
Critical | Weak Key Size | OPT.VBNET.WeakKeySize | WeakKeySize: Weak cryptography, insufficient key length |
Critical | Weak Symmetric Encryption Algorithm | OPT.VBNET.WeakSymmetricEncryptionAlgorithm | WeakSymmetricEncryptionAlgorithm: Weak symmetric encryption algorithm |
Critical | Weak Symmetric Encryption Mode Of Operation | OPT.VBNET.WeakSymmetricEncryptionModeOfOperation | WeakSymmetricEncryptionModeOfOperation: Do not use weak modes of operation with symmetric encryption |
High | Cross Site Request Forgery | OPT.VBNET.CrossSiteRequestForgery | CrossSiteRequestForgery: Cross-Site Request Forgery (CSRF) |
High | JSON Injection | OPT.VBNET.JSONInjection | JSONInjection: Avoid using non-neutralized user-controlled input in JSON entities |
High | MVC Prevent Overposting Model Definition | OPT.VBNET.MVCPreventOverpostingModelDefinition | MVCPreventOverpostingModelDefinition: Prevent over-posting attacks in model definition |
High | MVC Prevent Underposting Model Composition | OPT.VBNET.MVCPreventUnderpostingModelComposition | MVCPreventUnderpostingModelComposition: Prevent under-posting attacks in model composition |
High | MVC Prevent Underposting Model Definition | OPT.VBNET.MVCPreventUnderpostingModelDefinition | MVCPreventUnderpostingModelDefinition: Prevent under-posting attacks in model definition |
High | Open Redirect | OPT.VBNET.OpenRedirect | OpenRedirect: URL Redirection to Untrusted Site ('Open Redirect') |
High | Cross Site History Manipulation | OPT.VBNET.SEC.CrossSiteHistoryManipulation | CrossSiteHistoryManipulation: Cross-Site History Manipulation (XSHM) |
High | Log Forging | OPT.VBNET.SEC.LogForging | LogForging: Improper Output Neutralization for Logs |
High | Resource Injection | OPT.VBNET.SEC.ResourceInjection | ResourceInjection: Improper control of resource identifiers ("Resource Injection") |
High | Trust Boundary Violation | OPT.VBNET.SEC.TrustBoundaryViolation | TrustBoundaryViolation: Trust boundary violation |
High | Unsafe Reflection | OPT.VBNET.SEC.UnsafeReflection | UnsafeReflection: Use of Externally-Controlled Input to Select Classes or Code ('Unsafe Reflection') |
High | XML Entity Injection | OPT.VBNET.SEC.XMLEntityInjection | XMLEntityInjection: XML entity injection |
High | XML Injection | OPT.VBNET.XMLInjection | XMLInjection: XML Injection (aka Blind XPath Injection) |
High | XPath Injection | OPT.VBNET.XPathInjection | XPathInjection: Improper Neutralization of Data within XPath Expressions ('XPath Injection') |
High | XQuery Injection | OPT.VBNET.XQueryInjection | XQueryInjection: Improper Neutralization of Data within XQuery Expressions ('XQuery Injection') |
High | XSLT Injection | OPT.VBNET.XSLTInjection | XSLTInjection: Avoid using non-neutralized user-controlled input when creating XSL stylesheets |
High | Information Exposure Through Error Message | OPT.VBNET.SEC.InformationExposureThroughErrorMessage | InformationExposureThroughErrorMessage: Avoid sensitive information exposure through error messages |
High | Insecure Email Transport | OPT.VBNET.SEC.InsecureEmailTransport | InsecureEmailTransport: Insecure Mail Transport |
High | Review Visible Event Handlers | OPT.VBNET.VBnet.ReviewVisibleEventHandlers | ReviewVisibleEventHandlers: A public or protected event-handling method was detected |
High | Resource Leak Database | OPT.VBNET.ResourceLeakDatabase | ResourceLeakDatabase: Unreleased database resource |
High | Resource Leak Ldap | OPT.VBNET.ResourceLeakLdap | ResourceLeakLdap: Unreleased LDAP resource |
High | Resource Leak Stream | OPT.VBNET.ResourceLeakStream | ResourceLeakStream: Unreleased stream resource |
High | Resource Leak Unmanaged | OPT.VBNET.ResourceLeakUnmanaged | ResourceLeakUnmanaged: Unreleased unmanaged resource |
High | Avoid Certificate Equals | OPT.VBNET.SEC.AvoidCertificateEquals | AvoidCertificateEquals: Never use X509Certificate.Equals() in a security context |
High | Cookies In Security Decision | OPT.VBNET.SEC.CookiesInSecurityDecision | CookiesInSecurityDecision: Reliance on Cookies without Validation and Integrity Checking in a Security Decision |
High | Improper Authentication | OPT.VBNET.SEC.ImproperAuthentication | ImproperAuthentication: Avoid that a user can perform actions to which he does not have access |
High | Missing Standard Error Handling | OPT.VBNET.SEC.MissingStandardErrorHandling | MissingStandardErrorHandling: Missing Standardized Error Handling Mechanism in ASP.Net |
High | Setting Manipulation | OPT.VBNET.SEC.SettingManipulation | SettingManipulation: Setting Manipulation |
High | Unvalidated Asp Net Model | OPT.VBNET.SEC.UnvalidatedAspNetModel | UnvalidatedAspNetModel: Unvalidated model in MVC controller |
High | User Controlled SQL Primary Key | OPT.VBNET.SEC.UserControlledSQLPrimaryKey | UserControlledSQLPrimaryKey: Avoid using an user controlled Primary Key into a query |
High | Abstract Types Should Not Have Constructors | OPT.VBNET.VBnet.AbstractTypesShouldNotHaveConstructors | AbstractTypesShouldNotHaveConstructors: Public abstract class with public constructor |
High | Attribute Usage | OPT.VBNET.VBnet.AttributeUsage | AttributeUsage: Specify AttributeUsage |
High | Avoid Excessive Complexity | OPT.VBNET.VBnet.AvoidExcessiveComplexity | AvoidExcessiveComplexity: A method has an excessive cyclomatic complexity |
High | Avoid Excessive Locals | OPT.VBNET.VBnet.AvoidExcessiveLocals | AvoidExcessiveLocals: Avoid excessive local variables |
High | Avoid Floating Point Equality | OPT.VBNET.VBnet.AvoidFloatingPointEquality | AvoidFloatingPointEquality: Do not perform (in)equality operations over floating point variables |
High | Avoid Inconditional Recursive Invocation | OPT.VBNET.VBnet.AvoidInconditionalRecursiveInvocation | AvoidInconditionalRecursiveInvocation: Avoid recursive calls without a precondition |
High | Avoid Out Parameters | OPT.VBNET.VBnet.AvoidOutParameters | AvoidOutParameters: Public or protected methods has ByRef parameters |
High | Avoid Overloads In Com Visible Interfaces | OPT.VBNET.VBnet.AvoidOverloadsInComVisibleInterfaces | AvoidOverloadsInComVisibleInterfaces: COM visible interface declares overloaded methods |
High | Avoid Uncalled Private Code | OPT.VBNET.VBnet.AvoidUncalledPrivateCode | AvoidUncalledPrivateCode: Avoid uncalled private code |
High | Avoid Unused Private Fields | OPT.VBNET.VBnet.AvoidUnusedPrivateFields | AvoidUnusedPrivateFields: Avoid unused private fields |
High | Declare Event Handlers Correctly | OPT.VBNET.VBnet.DeclareEventHandlersCorrectly | DeclareEventHandlersCorrectly: Declare Event Handlers Correctly |
High | Do Not Assume Int Ptr Size Rule | OPT.VBNET.VBnet.DoNotAssumeIntPtrSizeRule | DoNotAssumeIntPtrSizeRule: Do not downcast IntPtr or UIntPtr into a 32-bit or smaller value |
High | Do Not Call Overridable Methods In Constructors | OPT.VBNET.VBnet.DoNotCallOverridableMethodsInConstructors | DoNotCallOverridableMethodsInConstructors: Virtual method call from constructor |
High | Do Not Declare Static Members On Generic Types | OPT.VBNET.VBnet.DoNotDeclareStaticMembersOnGenericTypes | DoNotDeclareStaticMembersOnGenericTypes: Do not declare shared members on generic types |
High | Do Not Lock On This Or Types | OPT.VBNET.VBnet.DoNotLockOnThisOrTypes | DoNotLockOnThisOrTypes: Do not lock on 'this' object or over its 'Type' |
High | Do Not Pass Types By Reference | OPT.VBNET.VBnet.DoNotPassTypesByReference | DoNotPassTypesByReference: Do not pass types by reference |
High | Empty Catch | OPT.VBNET.VBnet.EmptyCatch | EmptyCatch: Do not leave empty catch blocks |
High | Exceptions Should Be Public | OPT.VBNET.VBnet.ExceptionsShouldBePublic | ExceptionsShouldBePublic: Exceptions should be public |
High | Get Hash Code Equals | OPT.VBNET.VBnet.GetHashCodeEquals | GetHashCodeEquals: Overload GetHashCode and Equals as a whole |
High | Identifiers Should Not Match Keywords | OPT.VBNET.VBnet.IdentifiersShouldNotMatchKeywords | IdentifiersShouldNotMatchKeywords: The identifiers must not be reserved words |
High | Initialize Reference Type Static Fields Inline | OPT.VBNET.VBnet.InitializeReferenceTypeStaticFieldsInline | InitializeReferenceTypeStaticFieldsInline: Initialize reference type static fields inline |
High | Mark Boolean P Invoke Arguments With Marshal As | OPT.VBNET.VBnet.MarkBooleanPInvokeArgumentsWithMarshalAs | MarkBooleanPInvokeArgumentsWithMarshalAs: Mark boolean P/Invoke arguments with MarshalAs attribute |
High | Max Methods | OPT.VBNET.VBnet.MaxMethods | MaxMethods: Maximum allowed number of methods |
High | Non Constant Fields Should Not Be Visible | OPT.VBNET.VBnet.NonConstantFieldsShouldNotBeVisible | NonConstantFieldsShouldNotBeVisible: A public or protected static field is not constant nor is it read-only |
High | Normalize Strings To Uppercase | OPT.VBNET.VBnet.NormalizeStringsToUppercase | NormalizeStringsToUppercase: Not to convert chains to lower case letters |
High | Obsolete Usages | OPT.VBNET.VBnet.ObsoleteUsages | ObsoleteUsages: Avoid use of deprecated methods or obsolete classes depending of the chosen .NET SDK |
High | Parameter Names Should Not Match Member Names | OPT.VBNET.VBnet.ParameterNamesShouldNotMatchMemberNames | ParameterNamesShouldNotMatchMemberNames: Parameter names should not match member names |
High | Properties Should Not Return Arrays | OPT.VBNET.VBnet.PropertiesShouldNotReturnArrays | PropertiesShouldNotReturnArrays: Properties should not return arrays |
High | Property Names Should Not Match Get Methods | OPT.VBNET.VBnet.PropertyNamesShouldNotMatchGetMethods | PropertyNamesShouldNotMatchGetMethods: Property names should not match get methods |
High | Remove Unused Locals | OPT.VBNET.VBnet.RemoveUnusedLocals | RemoveUnusedLocals: Unused local variable |
High | Insecure Randomness | OPT.VBNET.InsecureRandomness | InsecureRandomness: Standard pseudo-random number generators cannot withstand cryptographic attacks |
High | Review Unused Parameters | OPT.VBNET.VBnet.ReviewUnusedParameters | ReviewUnusedParameters: Method parameter not used |
High | Hardcoded Crypto Key | OPT.VBNET.SEC.HardcodedCryptoKey | HardcodedCryptoKey: Use of Hard-coded Cryptographic Key |
High | Suppress Finalize Correctly | OPT.VBNET.VBnet.SuppressFinalizeCorrectly | SuppressFinalizeCorrectly: Call GC.SuppressFinalize correctly |
High | Use Safe Handle To Encapsulate Native Resources | OPT.VBNET.VBnet.UseSafeHandleToEncapsulateNativeResources | UseSafeHandleToEncapsulateNativeResources: Use of System.IntPtr |
High | Variable Names Should Not Match Field Names | OPT.VBNET.VBnet.VariableNamesShouldNotMatchFieldNames | VariableNamesShouldNotMatchFieldNames: Variable names should not match field names |
High | Hardcoded Salt | OPT.VBNET.SEC.HardcodedSalt | HardcodedSalt: A hardcoded salt can compromise system security |
High | Insecure Transport | OPT.VBNET.SEC.InsecureTransport | InsecureTransport: Insecure transport |
High | Proper Padding With Public Key Crypto | OPT.VBNET.SEC.ProperPaddingWithPublicKeyCrypto | ProperPaddingWithPublicKeyCrypto: Use of RSA Algorithm without Optimal Asymmetric Encryption Padding (OAEP) |
High | Server Insecure Transport | OPT.VBNET.SEC.ServerInsecureTransport | ServerInsecureTransport: Insecure transport in HTTP servers] |
High | Weak Encryption | OPT.VBNET.WeakEncryption | WeakEncryption: Insufficient RSA key length |
Info | Do Not Initialize Unnecessarily | OPT.VBNET.DoNotInitializeUnnecessarily | DoNotInitializeUnnecessarily: Do not initialize variables unnecessarily |
Info | Do Not Prefix Enum Values With Type Name | OPT.VBNET.DoNotPrefixEnumValuesWithTypeName | DoNotPrefixEnumValuesWithTypeName: Names of enumeration members should not start with the enumeration name |
Info | Avoid Unneeded Calls On String | OPT.VBNET.VBnet.AvoidUnneededCallsOnString | AvoidUnneededCallsOnString: Avoid unneeded calls on string objects |
Info | Do Not Hardcode Locale Specific Strings | OPT.VBNET.VBnet.DoNotHardcodeLocaleSpecificStrings | DoNotHardcodeLocaleSpecificStrings: Do not hardcode locale specific strings |
Info | Identifiers Should Have Correct Suffix | OPT.VBNET.VBnet.IdentifiersShouldHaveCorrectSuffix | IdentifiersShouldHaveCorrectSuffix: An identifier does not have the correct suffix |
Info | Identifiers Should Not Contain Underscores | OPT.VBNET.VBnet.IdentifiersShouldNotContainUnderscores | IdentifiersShouldNotContainUnderscores: An identifier contains the underscore character |
Info | Identifiers Should Not Have Incorrect Suffix | OPT.VBNET.VBnet.IdentifiersShouldNotHaveIncorrectSuffix | IdentifiersShouldNotHaveIncorrectSuffix: An identifier has an incorrect suffix |
Info | Interface Naming Conventions | OPT.VBNET.VBnet.InterfaceNamingConventions | InterfaceNamingConventions: Follow naming conventions in interfaces |
Info | Naming Conventions | OPT.VBNET.VBnet.NamingConventions | NamingConventions: Follow naming conventions for classes |
Low | Constants Should Be Transparent | OPT.VBNET.ConstantsShouldBeTransparent | ConstantsShouldBeTransparent: A field constant or an enumeration member should be transparent |
Low | Information Exposure Through Debug Log | OPT.VBNET.SEC.InformationExposureThroughDebugLog | InformationExposureThroughDebugLog: Avoid exposing sensible information through log |
Low | Avoid Language Specific Type Names In Parameters | OPT.VBNET.AvoidLanguageSpecificTypeNamesInParameters | AvoidLanguageSpecificTypeNamesInParameters: Avoid names of parameters that contains language-specific type name, in public methods |
Low | Avoid Unnecessary String Creation | OPT.VBNET.AvoidUnnecessaryStringCreation | AvoidUnnecessaryStringCreation: Avoid create unnecessary strings through a call to System.String.ToLower or System.String.ToUpper |
Low | Collection Properties Should Be Read Only | OPT.VBNET.CollectionPropertiesShouldBeReadOnly | CollectionPropertiesShouldBeReadOnly: Public properties that are of a type that implements System.Collections.ICollection should be read-only |
Low | Consider Converting Method To Property | OPT.VBNET.ConsiderConvertingMethodToProperty | ConsiderConvertingMethodToProperty: Consider converting the method into a property |
Low | Disposable Types Should Declare Finalizer | OPT.VBNET.DisposableTypesShouldDeclareFinalizer | DisposableTypesShouldDeclareFinalizer: A type that implements System.IDisposable and has fields of unmanaged types, should have a finalizer |
Low | Do Not Concatenate Strings Inside Loops | OPT.VBNET.DoNotConcatenateStringsInsideLoops | DoNotConcatenateStringsInsideLoops: Do not concatenate string values inside loops |
Low | Do Not Mark Enums With Flags | OPT.VBNET.DoNotMarkEnumsWithFlags | DoNotMarkEnumsWithFlags: The values of an enumeration that has System.FlagsAttribute attribute, should be powers of two |
Low | Identifiers Should Be Cased Correctly | OPT.VBNET.IdentifiersShouldBeCasedCorrectly | IdentifiersShouldBeCasedCorrectly: Use correctly "pascal-case" and "camel-case" according to the agreement established |
Low | Implement Serialization Constructors | OPT.VBNET.ImplementSerializationConstructors | ImplementSerializationConstructors: A type that implements ISerializable, should implement a serialization constructor |
Low | Implement Serialization Methods Correctly | OPT.VBNET.ImplementSerializationMethodsCorrectly | ImplementSerializationMethodsCorrectly: Implement a correct signature for methods that handle serialization events |
Low | Initialize Value Type Static Fields Inline | OPT.VBNET.InitializeValueTypeStaticFieldsInline | InitializeValueTypeStaticFieldsInline: Avoid explicitly declare a static constructor |
Low | Instantiate Argument Exceptions Correctly | OPT.VBNET.InstantiateArgumentExceptionsCorrectly | InstantiateArgumentExceptionsCorrectly: Avoid calling default constructor of ArgumentExceptions |
Low | Operator Overloads Have Named Alternates | OPT.VBNET.OperatorOverloadsHaveNamedAlternates | OperatorOverloadsHaveNamedAlternates: When a type overrides an operator, it is recommended to also override the alternative method |
Low | Overload Operator Equals On Overriding Equals | OPT.VBNET.OverloadOperatorEqualsOnOverridingEquals | OverloadOperatorEqualsOnOverridingEquals: When a type overrides System.Object.Equals method, it also should override the operator [] {} |
Low | Prefer Jagged Arrays Over Multidimensional | OPT.VBNET.PreferJaggedArraysOverMultidimensional | PreferJaggedArraysOverMultidimensional: Do not declare multidimensional array |
Low | Use Literals Where Appropriate | OPT.VBNET.UseLiteralsWhereAppropriate | UseLiteralsWhereAppropriate: Do not declare shared and readonly fields, that are initialized with a value |
Low | Use Managed Equivalents Of Win32 Api | OPT.VBNET.UseManagedEquivalentsOfWin32Api | UseManagedEquivalentsOfWin32Api: Use alternatives to existing methods for managing the win32 api |
Low | Attribute String Literals Should Parse Correctly | OPT.VBNET.VBnet.AttributeStringLiteralsShouldParseCorrectly | AttributeStringLiteralsShouldParseCorrectly: Attribute's literal value should be correctly written |
Low | Avoid Long Parameter Lists | OPT.VBNET.VBnet.AvoidLongParameterLists | AvoidLongParameterLists: Do not encode methods with too many parameters |
Low | Avoid Namespaces With Few Types | OPT.VBNET.VBnet.AvoidNamespacesWithFewTypes | AvoidNamespacesWithFewTypes: Avoid namespaces with few types |
Low | Avoid Non Stored Procedure Commands | OPT.VBNET.VBnet.AvoidNonStoredProcedureCommands | AvoidNonStoredProcedureCommands: Avoid using non stored-procedure database operations |
Low | Avoid Type Get Type For Constant Strings | OPT.VBNET.VBnet.AvoidTypeGetTypeForConstantStrings | AvoidTypeGetTypeForConstantStrings: Do not call Type.GetType() with constant string values |
Low | Avoid Uninstantiated Internal Classes | OPT.VBNET.VBnet.AvoidUninstantiatedInternalClasses | AvoidUninstantiatedInternalClasses: An instance of an assembly-level type is not created by code in the assembly |
Low | Call Base Class Methods On I Serializable Types | OPT.VBNET.VBnet.CallBaseClassMethodsOnISerializableTypes | CallBaseClassMethodsOnISerializableTypes: Call base class methods on ISerializable types |
Low | Check New Exception Without Throwing | OPT.VBNET.VBnet.CheckNewExceptionWithoutThrowing | CheckNewExceptionWithoutThrowing: Exception instantiation not used |
Low | Consider Custom Accessors For Non Visible Events Rule | OPT.VBNET.Vbnet.ConsiderCustomAccessorsForNonVisibleEventsRule | ConsiderCustomAccessorsForNonVisibleEventsRule: For non visible events, evaluate using custom accessors instead of default ones |
Low | Delegates Passed To Native Code Must Include Exception Handling Rule | OPT.VBNET.VBnet.DelegatesPassedToNativeCodeMustIncludeExceptionHandlingRule | DelegatesPassedToNativeCodeMustIncludeExceptionHandlingRule: Enclose with a catch all handler entire block for delegates passed to native code |
Low | Do Not Cast Unnecessarily | OPT.VBNET.VBnet.DoNotCastUnnecessarily | DoNotCastUnnecessarily: A method performs duplicate casts on one of its arguments or local variables |
Low | Do Not Destroy Stack Trace Rule | OPT.VBNET.VBnet.DoNotDestroyStackTraceRule | DoNotDestroyStackTraceRule: Catch handlers should rethrow original exception instead of throwing the same exception |
Low | Do Not Indirectly Expose Methods With Link Demands | OPT.VBNET.VBnet.DoNotIndirectlyExposeMethodsWithLinkDemands | DoNotIndirectlyExposeMethodsWithLinkDemands: Do not indirectly expose methods with link demands |
Low | Do Not Raise Exceptions In Unexpected Locations | OPT.VBNET.Vbnet.DoNotRaiseExceptionsInUnexpectedLocations | DoNotRaiseExceptionsInUnexpectedLocations: Do not raise exceptions in unexpected locations |
Low | Do Not Use Thread Static With Instance Fields | OPT.VBNET.VBnet.DoNotUseThreadStaticWithInstanceFields | DoNotUseThreadStaticWithInstanceFields: Do not use 'ThreadStatic' with instance fields |
Low | Num Max Class By Namespaces | OPT.VBNET.VBnet.NumMaxClassByNamespaces | NumMaxClassByNamespaces: Avoid an excessive number of classes per package/namespace |
Low | Only Flags Enums Should Have Plural Names | OPT.VBNET.VBnet.OnlyFlagsEnumsShouldHavePluralNames | OnlyFlagsEnumsShouldHavePluralNames: Externally visible enumeration ends in a plural word and is not marked with the Flags attribute |
Low | Operations Should Not Overflow | OPT.VBNET.VBnet.OperationsShouldNotOverflow | OperationsShouldNotOverflow: Operations should not overflow |
Low | Override Equals On Value Types | OPT.VBNET.VBnet.OverrideEqualsOnValueTypes | OverrideEqualsOnValueTypes: A public value type does not override Equals |
Low | Remove Empty Finalizers | OPT.VBNET.VBnet.RemoveEmptyFinalizers | RemoveEmptyFinalizers: Remove empty finalizers |
Low | Test For Empty Strings Using Length | OPT.VBNET.VBnet.TestForEmptyStringsUsingLength | TestForEmptyStringsUsingLength: Comparison with empty string using 'Equals' |
Low | Types That Own Native Resources Should Be Disposable | OPT.VBNET.VBnet.TypesThatOwnNativeResourcesShouldBeDisposable | TypesThatOwnNativeResourcesShouldBeDisposable: Types that own native resources should be disposable |
Low | Write Static Field From Instance Method | OPT.VBNET.VBnet.WriteStaticFieldFromInstanceMethod | WriteStaticFieldFromInstanceMethod: Do not write in static fields from instance methods |
Medium | Unsafe Cookie Rule | OPT.VBNET.SEC.UnsafeCookieRule | UnsafeCookieRule: Generate server-side cookies with adequate security properties |
Medium | Avoid Host Name Checks | OPT.VBNET.SEC.AvoidHostNameChecks | AvoidHostNameChecks: Avoid checks on client-side hostname, that are not reliable due to DNS poisoning |
Medium | MVC Remove Version Header | OPT.VBNET.MVCRemoveVersionHeader | MVCRemoveVersionHeader: Remove ASP.NET MVC version from HTTP headers |
Medium | P Invokes Should Not Be Safe Critical | OPT.VBNET.PInvokesShouldNotBeSafeCritical | PInvokesShouldNotBeSafeCritical: A P/Invoke declaration should not have the SecuritySafeCriticalAttribute attribute |
Medium | Hardcoded Credential | OPT.VBNET.SEC.HardcodedCredential | HardcodedCredential: Use of Hard-coded Credentials |
Medium | Hardcoded Network Address | OPT.VBNET.SEC.HardcodedNetworkAddress | HardcodedNetworkAddress: Network addresses should not be hardcoded |
Medium | Plaintext Storage Of Password | OPT.VBNET.SEC.PlaintextStorageOfPassword | PlaintextStorageOfPassword: Plaintext Storage of a Password |
Medium | Serializable Class Containing Sensitive Data | OPT.VBNET.SEC.SerializableClassContainingSensitiveData | SerializableClassContainingSensitiveData: Serializable Class Containing Sensitive Data |
Medium | Secure Serialization Constructors | OPT.VBNET.SecureSerializationConstructors | SecureSerializationConstructors: Serialization constructors should be protected with security demands |
Medium | Secured Types Should Not Expose Fields | OPT.VBNET.SecuredTypesShouldNotExposeFields | SecuredTypesShouldNotExposeFields: Types secured with Link Demands should not expose fields |
Medium | Transparency Annotations Should Not Conflict | OPT.VBNET.TransparencyAnnotationsShouldNotConflict | TransparencyAnnotationsShouldNotConflict: The security attribute of a type should have the same transparency that the security attributes of the members that it contains |
Medium | Do Not Expose Fields In Secured Type | OPT.VBNET.VBnet.DoNotExposeFieldsInSecuredType | DoNotExposeFieldsInSecuredType: Do not declare public types that are secured but also expose its fields |
Medium | Review Suppress Unmanaged Code Security Usage | OPT.VBNET.VBnet.ReviewSuppressUnmanagedCodeSecurityUsage | ReviewSuppressUnmanagedCodeSecurityUsage: Do not use the 'SuppressUnmanagedCodeSecurity' attribute |
Medium | Avoid Readonly Mutable Types | OPT.VBNET.AvoidReadonlyMutableTypes | AvoidReadonlyMutableTypes: Do not declare externally visible read-only fields with mutable types |
Medium | Call GC Keep Alive When Usinga Ntive Resources | OPT.VBNET.CallGCKeepAliveWhenUsingaNtiveResources | CallGCKeepAliveWhenUsingaNtiveResources: GC.KeepAlive should be called in methods that use unmanaged resources |
Medium | Critical Types Must Not Participate In Type Equivalence | OPT.VBNET.CriticalTypesMustNotParticipateInTypeEquivalence | CriticalTypesMustNotParticipateInTypeEquivalence: SecurityCriticalAttribute should not be used in members, or types that participate in type equivalence |
Medium | Dispose Methods Should Call Suppress Finalize | OPT.VBNET.DisposeMethodsShouldCallSuppressFinalize | DisposeMethodsShouldCallSuppressFinalize: The Dispose method of a class that implements System.IDisposable, should call GC.SuppressFinalize |
Medium | Method Security Should Be Superset Of Type | OPT.VBNET.MethodSecurityShouldBeSupersetOfType | MethodSecurityShouldBeSupersetOfType: Security of methods should be a subset of the security of types |
Medium | MVC Post In Controllers | OPT.VBNET.MVCPostInControllers | MVCPostInControllers: Restrict allowed HTTP verbs for state-change operations in MVC controllers |
Medium | Potential Infinite Loop | OPT.VBNET.PotentialInfiniteLoop | PotentialInfiniteLoop: Loop with Unreachable Exit Condition ('Infinite Loop') |
Medium | Provide Correct Arguments To Formatting Methods | OPT.VBNET.ProvideCorrectArgumentsToFormattingMethods | ProvideCorrectArgumentsToFormattingMethods: The format argument passed to System.String.Format does not match with the objects passed as parameters |
Medium | Provide Deserialization Methods For Optional Fields | OPT.VBNET.ProvideDeserializationMethodsForOptionalFields | ProvideDeserializationMethodsForOptionalFields: Provide methods for the de-serialization of fields marked with OptionalFieldAttribute |
Medium | Review Declarative Security On Value Types | OPT.VBNET.ReviewDeclarativeSecurityOnValueTypes | ReviewDeclarativeSecurityOnValueTypes: Avoid using declarative security in value types |
Medium | Review Imperative Security | OPT.VBNET.ReviewImperativeSecurity | ReviewImperativeSecurity: Avoid using the imperative security whenever possible |
Medium | Http Request Value Shadowing | OPT.VBNET.SEC.HttpRequestValueShadowing | HttpRequestValueShadowing: Request data is accessed in an ambiguous way, which can leave it open to attack |
Medium | Main Method In Web Application | OPT.VBNET.SEC.MainMethodInWebApplication | MainMethodInWebApplication: Main() method not allowed in web application |
Medium | System Information Leak | OPT.VBNET.SystemInformationLeak | SystemInformationLeak: Exposure of System Data to an Unauthorized Control Sphere |
Medium | Test For Na N Correctly | OPT.VBNET.TestForNaNCorrectly | TestForNaNCorrectly: Not use NaN in the expressions for developing equality test |
Medium | Transparent Methods Must Not Call Native Code | OPT.VBNET.TransparentMethodsMustNotCallNativeCode | TransparentMethodsMustNotCallNativeCode: A transparent method should not make calls to native code |
Medium | Transparent Methods Must Not Handle Process Corrupting Exceptions | OPT.VBNET.TransparentMethodsMustNotHandleProcessCorruptingExceptions | TransparentMethodsMustNotHandleProcessCorruptingExceptions: A transparent method must not have HandleProcessCorruptedStateExceptionsAttribute attribute |
Medium | Transparent Methods Should Not Be Protected With Link Demands | OPT.VBNET.TransparentMethodsShouldNotBeProtectedWithLinkDemands | TransparentMethodsShouldNotBeProtectedWithLinkDemands: A transparent method should not require LinkDemand |
Medium | Transparent Methods Should Not Demand | OPT.VBNET.TransparentMethodsShouldNotDemand | TransparentMethodsShouldNotDemand: A transparent method should not require SecurityAction.Demand, and should not call the CodeAccessPermission.Demand method |
Medium | Transparent Methods Should Not Load Assemblies From Byte Arrays | OPT.VBNET.TransparentMethodsShouldNotLoadAssembliesFromByteArrays | TransparentMethodsShouldNotLoadAssembliesFromByteArrays: A transparent method should not load an assembly from a byte array using the Assembly.Load method |
Medium | Transparent Methods Should Not Use Suppress Unmanaged Code Security | OPT.VBNET.TransparentMethodsShouldNotUseSuppressUnmanagedCodeSecurity | TransparentMethodsShouldNotUseSuppressUnmanagedCodeSecurity: A transparent method should not have the attribute SuppressUnmanagedCodeSecurityAttribute |
Medium | Type Link Demands Require Inheritance Demands | OPT.VBNET.TypeLinkDemandsRequireInheritanceDemands | TypeLinkDemandsRequireInheritanceDemands: A public type protected with link demand requires inheritance demand |
Medium | Unchecked Input In Loop Condition | OPT.VBNET.UncheckedInputInLoopCondition | UncheckedInputInLoopCondition: Unchecked input in loop condition |
Medium | Unchecked Return Value | OPT.VBNET.UncheckedReturnValue | UncheckedReturnValue: Unchecked return value. |
Medium | Array Fields Should Not Be Read Only | OPT.VBNET.VBnet.ArrayFieldsShouldNotBeReadOnly | ArrayFieldsShouldNotBeReadOnly: Array fields should not be read only |
Medium | Attribute Suffix | OPT.VBNET.VBnet.AttributeSuffix | AttributeSuffix: Name of an attribute class should be postfixed with 'Attribute' |
Medium | Avoid Calling Problematic Methods | OPT.VBNET.VBnet.AvoidCallingProblematicMethods | AvoidCallingProblematicMethods: Potentially dangerous call |
Medium | Avoid Large Methods | OPT.VBNET.VBnet.AvoidLargeMethods | AvoidLargeMethods: Avoid functions and methods with too many lines of code |
Medium | Avoid Large Structure | OPT.VBNET.VBnet.AvoidLargeStructure | AvoidLargeStructure: Avoid creating structures too large |
Medium | Avoid Protected Instance Fields | OPT.VBNET.VBnet.AvoidProtectedInstanceFields | AvoidProtectedInstanceFields: Avoid Protected or public fields |
Medium | Avoid Static Members In Com Visible Types | OPT.VBNET.VBnet.AvoidStaticMembersInComVisibleTypes | AvoidStaticMembersInComVisibleTypes: Avoid static members in COM visible types |
Medium | Avoid Unsealed Concrete Attributes Rule | OPT.VBNET.VBnet.AvoidUnsealedConcreteAttributesRule | AvoidUnsealedConcreteAttributesRule: Avoid attributes defined as NotInheritable but not abstract |
Medium | Bad Exception Parent | OPT.VBNET.VBnet.BadExceptionParent | BadExceptionParent: Custom Exception should not derive from certain 'not allowed' base exception classes |
Medium | Bad Exception Thrown | OPT.VBNET.VBnet.BadExceptionThrown | BadExceptionThrown: Illegal Exception Throwing : Exceptions must be defined in separated classes |
Medium | Call Get Last Error Immediately After P Invoke | OPT.VBNET.VBnet.CallGetLastErrorImmediatelyAfterPInvoke | CallGetLastErrorImmediatelyAfterPInvoke: Call GetLastError immediately after P/Invoke |
Medium | Check New Thread Without Start | OPT.VBNET.VBnet.CheckNewThreadWithoutStart | CheckNewThreadWithoutStart: Avoid creating unstarted threads |
Medium | Clone Method Should Not Return Null | OPT.VBNET.VBnet.CloneMethodShouldNotReturnNull | CloneMethodShouldNotReturnNull: An overwritten Clone() method should never return null |
Medium | Collection Suffix | OPT.VBNET.VBnet.CollectionSuffix | CollectionSuffix: Classes that implement Collection interfaces should have the 'Collection' suffix |
Medium | Collections Should Implement Generic Interface | OPT.VBNET.VBnet.CollectionsShouldImplementGenericInterface | CollectionsShouldImplementGenericInterface: Collections should implement the generic interface |
Medium | Com Visible Type Base Types Should Be Com Visible | OPT.VBNET.VBnet.ComVisibleTypeBaseTypesShouldBeComVisible | ComVisibleTypeBaseTypesShouldBeComVisible: COM visible type derive from a non COM visible type |
Medium | Common Exception Bases | OPT.VBNET.VBnet.CommonExceptionBases | CommonExceptionBases: Derive Custom Exceptions from allowed classes defined in this rule's properties |
Medium | Consider Passing Base Types As Parameters | OPT.VBNET.VBnet.ConsiderPassingBaseTypesAsParameters | ConsiderPassingBaseTypesAsParameters: Consider passing base types as parameters |
Medium | Declare Types In Namespaces | OPT.VBNET.VBnet.DeclareTypesInNamespaces | DeclareTypesInNamespaces: Declare types in namespaces |
Medium | Default Parameters Should Not Be Used | OPT.VBNET.VBnet.DefaultParametersShouldNotBeUsed | DefaultParametersShouldNotBeUsed: Do not use default parameters |
Medium | Disable Debugging Code Rule | OPT.VBNET.VBnet.DisableDebuggingCodeRule | DisableDebuggingCodeRule: Avoid using Console.WriteLine |
Medium | Disposable Fields Should Be Disposed | OPT.VBNET.VBnet.DisposableFieldsShouldBeDisposed | DisposableFieldsShouldBeDisposed: Call Dispose method of fields that implements IDisposable |
Medium | Dispose Finalize | OPT.VBNET.VBnet.DisposeFinalize | DisposeFinalize: Implement both Finalize and Dispose |
Medium | Do Not Catch General Exception Types | OPT.VBNET.VBnet.DoNotCatchGeneralExceptionTypes | DoNotCatchGeneralExceptionTypes: Do not catch general exception types |
Medium | Do Not Declare Overridable Members In Not Inheritable Types | OPT.VBNET.VBnet.DoNotDeclareOverridableMembersInNotInheritableTypes | DoNotDeclareOverridableMembersInNotInheritableTypes: Do not declare Overridable and not final members in NotInheritable classes |
Medium | Do Not Decrease Inherited Member Visibility | OPT.VBNET.VBnet.DoNotDecreaseInheritedMemberVisibility | DoNotDecreaseInheritedMemberVisibility: Do not decrease inherited member visibility |
Medium | Do Not Ignore Method Results | OPT.VBNET.VBnet.DoNotIgnoreMethodResults | DoNotIgnoreMethodResults: Do not ignore the returning value of methods |
Medium | Do Not Pass Literals As Localized Parameters | OPT.VBNET.VBnet.DoNotPassLiteralsAsLocalizedParameters | DoNotPassLiteralsAsLocalizedParameters: String literal passes as parameter should be localizable |
Medium | Do Not Raise Exceptions In Exception Clauses | OPT.VBNET.VBnet.DoNotRaiseExceptionsInExceptionClauses | DoNotRaiseExceptionsInExceptionClauses: An exception is thrown from a finally, filter, or fault clause |
Medium | Do Not Raise Reserved Exception Types | OPT.VBNET.VBnet.DoNotRaiseReservedExceptionTypes | DoNotRaiseReservedExceptionTypes: Do not raise reserved exception types |
Medium | Do Not Use Timers That Prevent Power State Changes | OPT.VBNET.VBnet.DoNotUseTimersThatPreventPowerStateChanges | DoNotUseTimersThatPreventPowerStateChanges: Avoid timers that prevent power state changes |
Medium | Double Check Locking Rule | OPT.VBNET.VBnet.DoubleCheckLockingRule | DoubleCheckLockingRule: Incorrect usage of double checking when implementing Singleton pattern |
Medium | Equal Op With Add Sub | OPT.VBNET.VBnet.EqualOpWithAddSub | EqualOpWithAddSub: Implement + ,- and {} |
Medium | Equals Throws Ex | OPT.VBNET.VBnet.EqualsThrowsEx | EqualsThrowsEx: Avoid throwing exceptions in Equals method |
Medium | Exception Constructors | OPT.VBNET.VBnet.ExceptionConstructors | ExceptionConstructors: Custom Exception should implement the common Constructors |
Medium | Exception Suffix | OPT.VBNET.VBnet.ExceptionSuffix | ExceptionSuffix: Classes that inherits Exception classes should have the 'Exception' suffix |
Medium | Get Hash Code Throws Ex | OPT.VBNET.VBnet.GetHashCodeThrowsEx | GetHashCodeThrowsEx: Avoid throwring exceptions when overriding GetHashCode |
Medium | I Comparable With Comp Ops | OPT.VBNET.VBnet.IComparableWithCompOps | IComparableWithCompOps: Implement comparaison operators when implementing IComparable |
Medium | Implement I Serializable Correctly | OPT.VBNET.VBnet.ImplementISerializableCorrectly | ImplementISerializableCorrectly: Implement ISerializable correctly |
Medium | Implement Standard Exception Constructors | OPT.VBNET.VBnet.ImplementStandardExceptionConstructors | ImplementStandardExceptionConstructors: Implement standard exception constructors |
Medium | Index With I Collection | OPT.VBNET.VBnet.IndexWithICollection | IndexWithICollection: Avoid indexed properties in classes not extending from System.Collections or Interfaces |
Medium | Level2 Assemblies Should Not Contain Linkdemands | OPT.VBNET.VBnet.Level2AssembliesShouldNotContainLinkdemands | Level2AssembliesShouldNotContainLinkdemands: A class or class member is using a LinkDemand in an application that is using Level 2 security |
Medium | Mark Members As Static | OPT.VBNET.VBnet.MarkMembersAsStatic | MarkMembersAsStatic: A method that only accesses class members should be marked as 'Shared' |
Medium | Members Should Not Expose Certain Concrete Types | OPT.VBNET.VBnet.MembersShouldNotExposeCertainConcreteTypes | MembersShouldNotExposeCertainConcreteTypes: Members should not expose certain concrete types |
Medium | Move P Invokes To Native Methods Class | OPT.VBNET.VBnet.MovePInvokesToNativeMethodsClass | MovePInvokesToNativeMethodsClass: Move P/Invokes to NativeMethods class |
Medium | Nested Types Should Not Be Visible | OPT.VBNET.VBnet.NestedTypesShouldNotBeVisible | NestedTypesShouldNotBeVisible: An externally visible type contains an externally visible type declaration |
Medium | Operator Throws Ex | OPT.VBNET.VBnet.OperatorThrowsEx | OperatorThrowsEx: Overloading a binary operator should not throw exceptions |
Medium | Pass System Obj Instead Of String | OPT.VBNET.VBnet.PassSystemObjInsteadOfString | PassSystemObjInsteadOfString: Method invocation can be improved |
Medium | Pointers Should Not Be Visible | OPT.VBNET.VBnet.PointersShouldNotBeVisible | PointersShouldNotBeVisible: Pointers should not be visible |
Medium | Properties Matched By Constructor Args | OPT.VBNET.VBnet.PropertiesMatchedByConstructorArgs | PropertiesMatchedByConstructorArgs: Constructor parameters set to Properties |
Medium | Properties Should Not Be Write Only | OPT.VBNET.VBnet.PropertiesShouldNotBeWriteOnly | PropertiesShouldNotBeWriteOnly: Avoid write only properties |
Medium | Rethrow To Preserve Stack Details | OPT.VBNET.VBnet.RethrowToPreserveStackDetails | RethrowToPreserveStackDetails: Do not rethrow exceptions explicitly |
Medium | Same Namespace Type | OPT.VBNET.VBnet.SameNamespaceType | SameNamespaceType: Conflict between namespace and class names |
Medium | Set Locale For Data Types | OPT.VBNET.VBnet.SetLocaleForDataTypes | SetLocaleForDataTypes: Set locale property for data types |
Medium | Specify Culture Info | OPT.VBNET.VBnet.SpecifyCultureInfo | SpecifyCultureInfo: Specify CultureInfo |
Medium | Specify Message Box Options | OPT.VBNET.VBnet.SpecifyMessageBoxOptions | SpecifyMessageBoxOptions: Specify MessageBoxOptions |
Medium | Specify String Comparison | OPT.VBNET.VBnet.SpecifyStringComparison | SpecifyStringComparison: Specify StringComparison |
Medium | Static Holder Types Should Be Sealed | OPT.VBNET.VBnet.StaticHolderTypesShouldBeSealed | StaticHolderTypesShouldBeSealed: Class containing only static members should be declared NotInheritable |
Medium | Static Holder Types Should Not Have Constructors | OPT.VBNET.VBnet.StaticHolderTypesShouldNotHaveConstructors | StaticHolderTypesShouldNotHaveConstructors: Static holder types should not have constructors |
Medium | Struct Empty Constructor | OPT.VBNET.VBnet.StructEmptyConstructor | StructEmptyConstructor: Avoid Structures with empty constructors |
Medium | Type Names Should Not Match Namespaces | OPT.VBNET.VBnet.TypeNamesShouldNotMatchNamespaces | TypeNamesShouldNotMatchNamespaces: Type names should not match namespaces |
Medium | Types Should Not Extend Certain Base Types | OPT.VBNET.VBnet.TypesShouldNotExtendCertainBaseTypes | TypesShouldNotExtendCertainBaseTypes: Types should not extend certain base types |
Medium | Uri Parameters Should Not Be Strings | OPT.VBNET.VBnet.UriParametersShouldNotBeStrings | UriParametersShouldNotBeStrings: URI parameters should not be strings |
Medium | Uri Return Values Should Not Be Strings | OPT.VBNET.VBnet.UriReturnValuesShouldNotBeStrings | UriReturnValuesShouldNotBeStrings: The name of a method contains 'uri', 'Uri', 'urn', 'Urn', 'url', or 'Url', and returns a string |
Medium | Use Generic Event Handler Instances | OPT.VBNET.VBnet.UseGenericEventHandlerInstances | UseGenericEventHandlerInstances: Use generic event handler instances |
Medium | Validate Arguments Of Public Methods | OPT.VBNET.VBnet.ValidateArgumentsOfPublicMethods | ValidateArgumentsOfPublicMethods: Check parameters of externally visible methods |