Skip to main content

Objective-C Scan rules

 

Contrast Scan supports these rules for Objective-C.

Severity

Contrast rule

Engine rule ID

Description

Critical 

Avoid SQL Injection 

OPT.OBJECTIVEC.AvoidSqlInjection 

AvoidSqlInjection: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') 

Critical 

Code Injection 

OPT.OBJECTIVEC.CodeInjection 

CodeInjection: Improper Control of Generation of Code ('Code Injection') 

Critical 

Cross Site Scripting 

OPT.OBJECTIVEC.CrossSiteScripting 

CrossSiteScripting: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') 

Critical 

DoS Regular Expression 

OPT.OBJECTIVEC.DoSRegularExpression 

DoSRegularExpression: Prevent denial of service attack through malicious regular expression 

Critical 

Format String Vulnerability 

OPT.OBJECTIVEC.FormatStringVulnerability 

FormatStringVulnerability: Exclude unsanitized user input from format strings 

Critical 

JSON Injection 

OPT.OBJECTIVEC.JSONInjection 

JSONInjection: Avoid using non-neutralized user-controlled input into JSON entities - JSON Injection 

Critical 

Open Redirect 

OPT.OBJECTIVEC.OpenRedirect 

OpenRedirect: URL Redirection to Untrusted Site ('Open Redirect') 

Critical 

XML Entity Injection 

OPT.OBJECTIVEC.XMLEntityInjection 

XMLEntityInjection: XML entity injection 

Critical 

XPath Injection 

OPT.OBJECTIVEC.XPathInjection 

XPathInjection: Improper Neutralization of Data within XPath Expressions ('XPath Injection') 

Critical 

Command Injection Rule 

OPT.OBJECTIVEC.SECURITY.CommandInjectionRule 

CommandInjectionRule: Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') 

Critical 

Connection String Parameter Pollution 

OPT.OBJECTIVEC.SECURITY.ConnectionStringParameterPollution 

ConnectionStringParameterPollution: Connection string polluted with untrusted input 

Critical 

Http Splitting Rule 

OPT.OBJECTIVEC.SECURITY.HttpSplittingRule 

HttpSplittingRule: Improper Neutralization of CRLF Sequences in HTTP Headers ('HTTP Response Splitting') 

Critical 

Mail Command Injection 

OPT.OBJECTIVEC.SECURITY.MailCommandInjection 

MailCommandInjection: Mail Command Injection 

Critical 

No SQL Injection 

OPT.OBJECTIVEC.SECURITY.NoSQLInjection 

NoSQLInjection: Improper neutralization of special elements in data query logic (NoSQL injection) 

Critical 

Avoid Confusing User Id Calls 

OPT.OBJECTIVEC.AvoidConfusingUserIdCalls 

AvoidConfusingUserIdCalls: Avoid setuid() / setreuid() / setgid() / setregid() to change program privilege levels 

Critical 

Avoid Empty Catch Blocks 

OPT.OBJECTIVEC.AvoidEmptyCatchBlocks 

AvoidEmptyCatchBlocks: Avoid empty @catch blocks 

Critical 

Avoid Large Methods 

OPT.OBJECTIVEC.AvoidLargeMethods 

AvoidLargeMethods: Avoid methods with excessive number of lines 

Critical 

Avoid Loop With Empty Body 

OPT.OBJECTIVEC.AvoidLoopWithEmptyBody 

AvoidLoopWithEmptyBody: Avoid loops (while, do/while, for) with empty body 

Critical 

Avoid Sudo 

OPT.OBJECTIVEC.AvoidSudo 

AvoidSudo: Avoid using sudo programmatically 

Critical 

Avoid Throwing Exceptions 

OPT.OBJECTIVEC.AvoidThrowingExceptions 

AvoidThrowingExceptions: Avoid throwing exceptions 

Critical 

Nil In Literals 

OPT.OBJECTIVEC.NilInLiterals 

NilInLiterals: Do not use nil in NSArray or NSDictionary literals 

Critical 

No Update Loop Vars In For Body 

OPT.OBJECTIVEC.NoUpdateLoopVarsInForBody 

NoUpdateLoopVarsInForBody: Do not update control vars in 'for' loop body 

Critical 

Override Draw Rect U IView Subclasses 

OPT.OBJECTIVEC.OverrideDrawRectUIViewSubclasses 

OverrideDrawRectUIViewSubclasses: Call super when overriding drawRect: and superclass is a UIView subclass 

Critical 

Override Is Equal And Hash 

OPT.OBJECTIVEC.OverrideIsEqualAndHash 

OverrideIsEqualAndHash: Override hash method when overriding isEqual: method 

Critical 

Override U IView Controller Methods 

OPT.OBJECTIVEC.OverrideUIViewControllerMethods 

OverrideUIViewControllerMethods: Call super when overriding some of UIViewController methods 

Critical 

Override U IView Methods 

OPT.OBJECTIVEC.OverrideUIViewMethods 

OverrideUIViewMethods: Call super when overriding some of UIView methods 

Critical 

Path Manipulation Vulnerability 

OPT.OBJECTIVEC.PathManipulationVulnerability 

PathManipulationVulnerability: Avoid non-neutralized user-controlled input to be part of a pathname (file or directory) used in I/O operations 

Critical 

Replace With Less Secure Func 

OPT.OBJECTIVEC.ReplaceWithLessSecureFunc 

ReplaceWithLessSecureFunc: Do not replace secure functions with less secure functions 

Critical 

Reuse Annotation Views 

OPT.OBJECTIVEC.ReuseAnnotationViews 

ReuseAnnotationViews: Reuse annotation views in maps 

Critical 

Reuse Table View Cells 

OPT.OBJECTIVEC.ReuseTableViewCells 

ReuseTableViewCells: Reuse cells in table views 

Critical 

Missing Password Field Masking 

OPT.OBJECTIVEC.SECURITY.MissingPasswordFieldMasking 

MissingPasswordFieldMasking: Password input field is not masked 

Critical 

Certificate Verify Failed Bypass 

OPT.OBJECTIVEC.CertificateVerifyFailedBypass 

CertificateVerifyFailedBypass: Do not bypass certificate validation fails 

Critical 

Hardcoded Crypto Key 

OPT.OBJECTIVEC.SECURITY.HardcodedCryptoKey 

HardcodedCryptoKey: Hardcoded cryptographic keys 

Critical 

Weak Key Derivation Iteration 

OPT.OBJECTIVEC.SECURITY.WeakKeyDerivationIteration 

WeakKeyDerivationIteration: Too weak iteration count on key derivation 

Critical 

Weak Key Derivation Password 

OPT.OBJECTIVEC.SECURITY.WeakKeyDerivationPassword 

WeakKeyDerivationPassword: Empty or nil password used in key derivation 

High 

Do Not Use System 

OPT.OBJECTIVEC.DoNotUseSystem 

DoNotUseSystem: Do not call system() if you do not need a command processor 

High 

Perform Selector With Untrusted Data 

OPT.OBJECTIVEC.PerformSelectorWithUntrustedData 

PerformSelectorWithUntrustedData: Avoid external control over performSelector 

High 

URL Schemes Handling 

OPT.OBJECTIVEC.URLSchemesHandling 

URLSchemesHandling: Verify invoker application identity 

High 

Http Parameter Pollution Rule 

OPT.OBJECTIVEC.SECURITY.HttpParameterPollutionRule 

HttpParameterPollutionRule: HTTP parameter pollution (HPP) 

High 

Log Forging 

OPT.OBJECTIVEC.SECURITY.LogForging 

LogForging: Improper Output Neutralization for Logs 

High 

Resource Injection 

OPT.OBJECTIVEC.SECURITY.ResourceInjection 

ResourceInjection: Improper control of resource identifiers ("Resource Injection") 

High 

URL Scheme Hijacking 

OPT.OBJECTIVEC.SECURITY.URLSchemeHijacking 

URLSchemeHijacking: URL scheme hijacking though user input 

High 

XML Injection 

OPT.OBJECTIVEC.SECURITY.XMLInjection 

XMLInjection: XML Injection (aka Blind XPath Injection) 

High 

Assign Init Result To Self 

OPT.OBJECTIVEC.AssignInitResultToSelf 

AssignInitResultToSelf: Assign the result of [super init] to self in init methods and check for nil 

High 

Avoid Conditional Operator 

OPT.OBJECTIVEC.AvoidConditionalOperator 

AvoidConditionalOperator: Do not use ? ternary operator to evaluate conditions 

High 

Avoid Empty Draw Rect 

OPT.OBJECTIVEC.AvoidEmptyDrawRect 

AvoidEmptyDrawRect: Avoid empty drawRect: implementations 

High 

Avoid Insecure C String Functions 

OPT.OBJECTIVEC.AvoidInsecureCStringFunctions 

AvoidInsecureCStringFunctions: Avoid C library functions that do not check for bounds 

High 

Avoid Maximum Location Accuracy When Possible 

OPT.OBJECTIVEC.AvoidMaximumLocationAccuracyWhenPossible 

AvoidMaximumLocationAccuracyWhenPossible: Avoid using by default the best location accuracy 

High 

Balance Custom Getters And Setters 

OPT.OBJECTIVEC.BalanceCustomGettersAndSetters 

BalanceCustomGettersAndSetters: Always write a custom getter for a property where you have a custom setter, and viceversa 

High 

Boolean In Comparisons 

OPT.OBJECTIVEC.BooleanInComparisons 

BooleanInComparisons: Avoid using nil/NO or YES in comparisons 

High 

Cache N S Date Formatters 

OPT.OBJECTIVEC.CacheNSDateFormatters 

CacheNSDateFormatters: Cache a single instance from NSDateFormatter types instead of creating multiple instances 

High 

Claim Ownership Core Foundation Objects 

OPT.OBJECTIVEC.ClaimOwnershipCoreFoundationObjects 

ClaimOwnershipCoreFoundationObjects: Claim ownership of Core Foundation objects received from Core Foundation Get functions 

High 

Class Cyclomatic Complexity 

OPT.OBJECTIVEC.ClassCyclomaticComplexity 

ClassCyclomaticComplexity: Avoid using classes with high cyclomatic complexity values 

High 

Clear Frame Buffers Before Drawing 

OPT.OBJECTIVEC.ClearFrameBuffersBeforeDrawing 

ClearFrameBuffersBeforeDrawing: Call glClear function before drawing 

High 

Comment Top Level Declarations 

OPT.OBJECTIVEC.CommentTopLevelDeclarations 

CommentTopLevelDeclarations: Interfaces, categories and protocols should have an accompanying comment 

High 

Create Autorelease Pool In Thread 

OPT.OBJECTIVEC.CreateAutoreleasePoolInThread 

CreateAutoreleasePoolInThread: Create an autorelease pool in each thread 

High 

Deallocation Of Objects Removed From Collections 

OPT.OBJECTIVEC.DeallocationOfObjectsRemovedFromCollections 

DeallocationOfObjectsRemovedFromCollections: Avoid deallocation of objects removed from fundamental collection classes (NSMutableArray, NSMutableDictionary) that you are going to use 

High 

Dealloc Method 

OPT.OBJECTIVEC.DeallocMethod 

DeallocMethod: Not invoke to the superclass's implementation at the end of the dealloc implementation 

High 

Default Clause Switch Statements 

OPT.OBJECTIVEC.DefaultClauseSwitchStatements 

DefaultClauseSwitchStatements: All switch statements must have a default statement 

High 

Designated Initializer 

OPT.OBJECTIVEC.DesignatedInitializer 

DesignatedInitializer: Every public class must have at least one designated initializer 

High 

Distance From Main Sequence 

OPT.OBJECTIVEC.DistanceFromMainSequence 

DistanceFromMainSequence: Project should not be too far from main sequence 

High 

Do Not Instantiate Temporal Objects Loops 

OPT.OBJECTIVEC.DoNotInstantiateTemporalObjectsLoops 

DoNotInstantiateTemporalObjectsLoops: Avoid instantiating temporal objects in loop bodies 

High 

Fork Followed By Exec 

OPT.OBJECTIVEC.ForkFollowedByExec 

ForkFollowedByExec: A call to fork must be followed by a call to exec or a similar function 

High 

Handle Memory Warnings 

OPT.OBJECTIVEC.HandleMemoryWarnings 

HandleMemoryWarnings: Respond to low-memory warnings 

High 

Many Cases 

OPT.OBJECTIVEC.ManyCases 

ManyCases: Avoid too many choices in switch structures 

High 

Method Cyclomatic Complexity 

OPT.OBJECTIVEC.MethodCyclomaticComplexity 

MethodCyclomaticComplexity: Avoid using methods with high cyclomatic complexity values 

High 

Minimize Bluetooth Interaction 

OPT.OBJECTIVEC.MinimizeBluetoothInteraction 

MinimizeBluetoothInteraction: Avoid using CBCentralManagerScanOptionAllowDuplicatesKey constant as a scan option 

High 

Nested If Statements 

OPT.OBJECTIVEC.NestedIfStatements 

NestedIfStatements: Avoid a high level of if statement nesting 

High 

Notify Deallocation Weak References 

OPT.OBJECTIVEC.NotifyDeallocationWeakReferences 

NotifyDeallocationWeakReferences: Notify deallocation in weak-referenced objects 

High 

Low Cohesion Within Object 

OPT.OBJECTIVEC.LowCohesionWithinObject 

LowCohesionWithinObject: Avoid classes with a low degree of cohesion 

High 

Parenthesize Macro Args 

OPT.OBJECTIVEC.ParenthesizeMacroArgs 

ParenthesizeMacroArgs: Macro replacement lists should be parenthesized 

High 

Property Data Member 

OPT.OBJECTIVEC.PropertyDataMember 

PropertyDataMember: Create a property for each data member and never access instance variables directly 

High 

Release Core Foundation Objects 

OPT.OBJECTIVEC.ReleaseCoreFoundationObjects 

ReleaseCoreFoundationObjects: Relinquish ownership of owned Core Foundation objects 

High 

Release Ivars Dealloc 

OPT.OBJECTIVEC.ReleaseIvarsDealloc 

ReleaseIvarsDealloc: Release ivars for retained/copied properties in dealloc method 

High 

Release Owned Objects 

OPT.OBJECTIVEC.ReleaseOwnedObjects 

ReleaseOwnedObjects: Release owned objects in MRR 

High 

Sizeof Pointer Instead Array 

OPT.OBJECTIVEC.SizeofPointerInsteadArray 

SizeofPointerInsteadArray: Do not apply the sizeof operator to a pointer when taking the size of an array 

High 

Specify Path For Shadows 

OPT.OBJECTIVEC.SpecifyPathForShadows 

SpecifyPathForShadows: Specify shadowPath property of layer when drawing a shadow 

High 

Subviews In Standard Controls 

OPT.OBJECTIVEC.SubviewsInStandardControls 

SubviewsInStandardControls: Do not add subviews to standard system controls 

High 

Unstructured Branching Statements 

OPT.OBJECTIVEC.UnstructuredBranchingStatements 

UnstructuredBranchingStatements: Avoid using unstructured branching statements 

High 

Unused Local Var 

OPT.OBJECTIVEC.UnusedLocalVar 

UnusedLocalVar: Avoid unused local variable 

High 

Unused Method Parameter 

OPT.OBJECTIVEC.UnusedMethodParameter 

UnusedMethodParameter: Avoid unused method parameters 

High 

Use Automatic Reference Counting 

OPT.OBJECTIVEC.UseAutomaticReferenceCounting 

UseAutomaticReferenceCounting: Code must obey transition to ARC rules 

High 

Use Block Based Animation 

OPT.OBJECTIVEC.UseBlockBasedAnimation 

UseBlockBasedAnimation: Use block-based animations 

High 

Use Setter For Property 

OPT.OBJECTIVEC.UseSetterForProperty 

UseSetterForProperty: When setting property values, use setter method 

High 

User Controlled SQL Primary Key 

OPT.OBJECTIVEC.SECURITY.UserControlledSQLPrimaryKey 

UserControlledSQLPrimaryKey: Avoid using an user controlled Primary Key into a query 

High 

Insecure Transport Layer 

OPT.OBJECTIVEC.InsecureTransportLayer 

InsecureTransportLayer: Avoid using HTTP instead of HTTPS 

High 

Hardcoded Ip 

OPT.OBJECTIVEC.SECURITY.HardcodedIp 

HardcodedIp: Do not write IP address in source code 

High 

Weak Cryptographic Hash 

OPT.OBJECTIVEC.WeakCryptographicHash 

WeakCryptographicHash: Weak cryptographic hashes cannot guarantee data integrity 

High 

Weak Encryption 

OPT.OBJECTIVEC.WeakEncryption 

WeakEncryption: Weak encryption algorithm 

Low 

Avoid C GContext Flush 

OPT.OBJECTIVEC.AvoidCGContextFlush 

AvoidCGContextFlush: Avoid calling CGContextFlush 

Low 

Avoid Exposing Instance Vars 

OPT.OBJECTIVEC.AvoidExposingInstanceVars 

AvoidExposingInstanceVars: Instance variables should be properly hidden 

Low 

Avoid Function Like Macros 

OPT.OBJECTIVEC.AvoidFunctionLikeMacros 

AvoidFunctionLikeMacros: AvoidFunctionLikeMacros: Prefer inline or static functions to function-like macros 

Low 

Avoid Locks 

OPT.OBJECTIVEC.AvoidLocks 

AvoidLocks: Avoid using locks 

Low 

Avoid Single Word Titles In Alerts 

OPT.OBJECTIVEC.AvoidSingleWordTitlesInAlerts 

AvoidSingleWordTitlesInAlerts: Avoid 'Alert' elements with little explanatory title 

Low 

Category In Framework Class Name Conventions 

OPT.OBJECTIVEC.CategoryInFrameworkClassNameConventions 

CategoryInFrameworkClassNameConventions: Naming convention for category methods in framework classes 

Low 

Dead Code 

OPT.OBJECTIVEC.DeadCode 

DeadCode: Avoid unreachable code 

Low 

Declare Subviews As Opaque 

OPT.OBJECTIVEC.DeclareSubviewsAsOpaque 

DeclareSubviewsAsOpaque: Declare subviews as opaque 

Low 

Reference From Parent To Child Class 

OPT.OBJECTIVEC.ReferenceFromParentToChildClass 

ReferenceFromParentToChildClass: Parent class does not reference any of its child classes 

Low 

Password In Comment Rule 

OPT.OBJECTIVEC.SECURITY.PasswordInCommentRule 

PasswordInCommentRule: Storing passwords or password details in plaintext anywhere in the system or system code can compromise system security 

Medium 

Plaintext Storage In A Cookie Rule 

OPT.OBJECTIVEC.SECURITY.PlaintextStorageInACookieRule 

PlaintextStorageInACookieRule: Cleartext Storage of Sensitive Information in a Cookie 

Medium 

Unsafe Cookie 

OPT.OBJECTIVEC.SECURITY.UnsafeCookie 

UnsafeCookie: Generate server-side cookies with adequate security properties 

Medium 

Serialization Injection 

OPT.OBJECTIVEC.SECURITY.SerializationInjection 

SerializationInjection: Deserialization of untrusted data 

Medium 

Avoid Comparing Float Numbers 

OPT.OBJECTIVEC.AvoidComparingFloatNumbers 

AvoidComparingFloatNumbers: Avoid comparing floating point with Code Quality [] {}

Medium 

Avoid Magic Numbers 

OPT.OBJECTIVEC.AvoidMagicNumbers 

AvoidMagicNumbers: Avoid using numeric constants 

Medium 

Avoid N S Log 

OPT.OBJECTIVEC.AvoidNSLog 

AvoidNSLog: Avoid the use of NSLog except in mode DEGUB 

Medium 

Avoid Querying State Open G L E S 

OPT.OBJECTIVEC.AvoidQueryingStateOpenGLES 

AvoidQueryingStateOpenGLES: Avoid calls to glGet*() to preserve parallelism 

Medium 

Avoid Super In Load View 

OPT.OBJECTIVEC.AvoidSuperInLoadView 

AvoidSuperInLoadView: Avoid calling super when overriding loadView 

Medium 

Avoid Too Deep Class Hierarchies 

OPT.OBJECTIVEC.AvoidTooDeepClassHierarchies 

AvoidTooDeepClassHierarchies: Avoid too deep hierarchy classes 

Medium 

Avoid Unsafe File Functions 

OPT.OBJECTIVEC.AvoidUnsafeFileFunctions 

AvoidUnsafeFileFunctions: Use safe file access POSIX functions 

Medium 

Background Apps Open G L E S Commands 

OPT.OBJECTIVEC.BackgroundAppsOpenGLESCommands 

BackgroundAppsOpenGLESCommands: Avoid submitting OpenGL ES commands when your app is in background 

Medium 

Be Aware Of Location Errors 

OPT.OBJECTIVEC.BeAwareOfLocationErrors 

BeAwareOfLocationErrors: Be aware of location errors 

Medium 

Break Non Empty Switch Clauses 

OPT.OBJECTIVEC.BreakNonEmptySwitchClauses 

BreakNonEmptySwitchClauses: Non empty case sentences must end with a break sentence 

Medium 

Check Parameter Number In Method 

OPT.OBJECTIVEC.CheckParameterNumberInMethod 

CheckParameterNumberInMethod: Too many parameters in method 

Medium 

Class Factory Methods Name Convention 

OPT.OBJECTIVEC.ClassFactoryMethodsNameConvention 

ClassFactoryMethodsNameConvention: Naming convention for class factory methods 

Medium 

Copy Immutable Objects 

OPT.OBJECTIVEC.CopyImmutableObjects 

CopyImmutableObjects: Always use the (copy) storage class for properties that receive objects that have mutable subclasses 

Medium 

Density Of Comments 

OPT.OBJECTIVEC.DensityOfComments 

DensityOfComments: Source code must be properly commented 

Medium 

Font Size 

OPT.OBJECTIVEC.FontSize 

FontSize: Avoid using fonts smaller than 11 points 

Medium 

High Coupling Between Objects 

OPT.OBJECTIVEC.HighCouplingBetweenObjects 

HighCouplingBetweenObjects: Classes internally strongly coupled must be avoided 

Medium 

Maximum Number Of Methods 

OPT.OBJECTIVEC.MaximumNumberOfMethods 

MaximumNumberOfMethods: Number of methods in an interface or protocol not should exceed a threshold 

Medium 

Misuse Embeding In Scroll View 

OPT.OBJECTIVEC.MisuseEmbedingInScrollView 

MisuseEmbedingInScrollView: Avoid embedding an UIWebView or UITableView in a UIScrollView 

Medium 

One Statement Per Line 

OPT.OBJECTIVEC.OneStatementPerLine 

OneStatementPerLine: Use only one statement per line 

Medium 

Replace Enum By Ns Enum Or Ns Option 

OPT.OBJECTIVEC.ReplaceEnumByNsEnumOrNsOption 

ReplaceEnumByNsEnumOrNsOption: Replace the enum declarations by uses of NS_ENUM and NS_OPTIONS macros 

Medium 

Too Many Buttons In Action Sheet 

OPT.OBJECTIVEC.TooManyButtonsInActionSheet 

TooManyButtonsInActionSheet: Avoid defining to many buttons in an Action Sheet 

Medium 

Too Many Dots In Page Control 

OPT.OBJECTIVEC.TooManyDotsInPageControl 

TooManyDotsInPageControl: Avoid too many opened views in Page Control 

Medium 

Touch Controls Size 

OPT.OBJECTIVEC.TouchControlsSize 

TouchControlsSize: Touch controls must should have at least a 44 x 44 pixels dimension 

Medium 

Use Instancetype Instead Of Id 

OPT.OBJECTIVEC.UseInstancetypeInsteadOfId 

UseInstancetypeInsteadOfId: Alloc, init and class factory methods must return instancetype instead of id 

Medium 

Use Modern File A P I 

OPT.OBJECTIVEC.UseModernFileAPI 

UseModernFileAPI: Use modern file APIs 

Medium 

Use Nonatomic Attribute 

OPT.OBJECTIVEC.UseNonatomicAttribute 

UseNonatomicAttribute: Always use the "nonatomic" attribute on your properties 

Medium 

Wrap Macro Statements In Do While 

OPT.OBJECTIVEC.WrapMacroStatementsInDoWhile 

WrapMacroStatementsInDoWhile: Wrap multistatement macros in a do-while loop 

Medium 

Avoid S M S 

OPT.OBJECTIVEC.SECURITY.AvoidSMS 

AvoidSMS: Avoid performing SMS-related operations 

Medium 

Biometric Without Message 

OPT.OBJECTIVEC.SECURITY.BiometricWithoutMessage 

BiometricWithoutMessage: User is asked for fingerprints without reason 

Medium 

Execution After Redirect 

OPT.OBJECTIVEC.SECURITY.ExecutionAfterRedirect 

ExecutionAfterRedirect: Execution After Redirect (EAR) 

Medium 

Missing Content Validation 

OPT.OBJECTIVEC.SECURITY.MissingContentValidation 

MissingContentValidation: Missing Content Validation 

Medium 

Potential Infinite Loop 

OPT.OBJECTIVEC.SECURITY.PotentialInfiniteLoop 

PotentialInfiniteLoop: Loop with Unreachable Exit Condition ('Infinite Loop') 

Medium 

Server Trust Credential Check 

OPT.OBJECTIVEC.SECURITY.ServerTrustCredentialCheck 

ServerTrustCredentialCheck: Evaluate server certificate trust chain 

Medium 

Unchecked Input In Loop Condition 

OPT.OBJECTIVEC.SECURITY.UncheckedInputInLoopCondition 

UncheckedInputInLoopCondition: Unchecked input in loop condition 

Medium 

Cookie Without SSL 

OPT.OBJECTIVEC.CookieWithoutSSL 

CookieWithoutSSL: Avoid creating cookies without security attributes 

Medium 

Hardcoded Username Password 

OPT.OBJECTIVEC.SECURITY.HardcodedUsernamePassword 

HardcodedUsernamePassword: Use of Hard-coded Credentials 

Medium 

Http Response Caching Leak 

OPT.OBJECTIVEC.SECURITY.HttpResponseCachingLeak 

HttpResponseCachingLeak: HTTP sensitive responses being cached 

Medium 

Information Exposure Through Error Message 

OPT.OBJECTIVEC.SECURITY.InformationExposureThroughErrorMessage 

InformationExposureThroughErrorMessage: Avoid sensitive information exposure through error messages 

Medium 

Insecure Temporary File 

OPT.OBJECTIVEC.SECURITY.InsecureTemporaryFile 

InsecureTemporaryFile: Creating and using insecure temporary files can leave application and system data vulnerable to attack. 

Medium 

Keyboard Caching Leak 

OPT.OBJECTIVEC.SECURITY.KeyboardCachingLeak 

KeyboardCachingLeak: Sensitive data leaked through keyboard cache 

Medium 

Password In Configuration File 

OPT.OBJECTIVEC.SECURITY.PasswordInConfigurationFile 

PasswordInConfigurationFile: Use of credentials into configuration file 

Medium 

Pasteboard Caching Leak 

OPT.OBJECTIVEC.SECURITY.PasteboardCachingLeak 

PasteboardCachingLeak: Sensitive data leaked through the pasteboard caching mechanism 

Medium 

Privacy Violation 

OPT.OBJECTIVEC.SECURITY.PrivacyViolation 

PrivacyViolation: Exposure of Private Information ('Privacy Violation') 

Medium 

Screen Caching Leak 

OPT.OBJECTIVEC.SECURITY.ScreenCachingLeak 

ScreenCachingLeak: Sensitive data leaked through the screen caching mechanism when app is backgrounded 

Medium 

Sensitive Core Data 

OPT.OBJECTIVEC.SECURITY.SensitiveCoreData 

SensitiveCoreData: Sensitive data stored into CoreData('Privacy Violation') 

Medium 

Sensitive Data Accessed From Itunes 

OPT.OBJECTIVEC.SECURITY.SensitiveDataAccessedFromItunes 

SensitiveDataAccessedFromItunes: Sensitive data accessed from Itunes ('Privacy Violation') 

Medium 

Sensitive No SQL 

OPT.OBJECTIVEC.SECURITY.SensitiveNoSQL 

SensitiveNoSQL: Sensitive data stored into a NoSQL database('Privacy Violation') 

Medium 

Sensitive SQL 

OPT.OBJECTIVEC.SECURITY.SensitiveSQL 

SensitiveSQL: Sensitive data stored into a SQL database('Privacy Violation') 

Medium 

Sensitive User Defaults 

OPT.OBJECTIVEC.SECURITY.SensitiveUserDefaults 

SensitiveUserDefaults: Sensitive data stored into NSUserDefaults('Privacy Violation') 

Medium 

Serializable Class Containing Sensitive Data 

OPT.OBJECTIVEC.SECURITY.SerializableClassContainingSensitiveData 

SerializableClassContainingSensitiveData: Serializable Class Containing Sensitive Data 

Medium 

Third Party Keyboard Allowed 

OPT.OBJECTIVEC.SECURITY.ThirdPartyKeyboardAllowed 

ThirdPartyKeyboardAllowed: Avoid exposing sensitive data to third party keyboards.