FAQ-000875 - External Platform Security / Security Design and Architecture

Current Status:VALID_RESPONSEErrorUnable to AnswerSuggests Case

Current FAQ

Question
How can I ensure my application will pass security review when connecting to external platforms?
Answer
To ensure your application passes the security review when connecting to external platforms, follow these steps: 1. **Comprehensive Testing**: - Test the full scope of your solution, including all external endpoints, using both manual testing and automated security scanner tools. - Ensure external endpoints securely transfer credentials and data. 2. **Address Security Violations**: - Document and address any false-positive security violations. - Fix all code that does not meet Salesforce security guidelines. 3. **Permissions for Testing**: - Obtain necessary permissions to perform security testing on external endpoints you do not own. - Follow Salesforce's guidelines for IP addresses and domains to allow. 4. **Automated Scanning**: - Use tools like Source Code Scanner (Checkmarx) and Dynamic Application Security Test (DAST) to identify vulnerabilities. - Run these scans periodically throughout development. 5. **Secure External Endpoints**: - Ensure external endpoints used for authenticating users or transferring Salesforce data comply with Salesforce security standards. 6. **Prepare Documentation**: - Submit updated scan reports, false-positive documentation, and solution documentation as part of the security review. 7. **Address Review Feedback**: - If issues are identified during the review, address them across the entire solution and request a follow-up review if needed. By following these steps and adhering to Salesforce's security guidelines, you can improve the likelihood of passing the security review.
Enhancing FAQ...

Enhancing FAQ with AI recommendations...

AI Recommended Enhancement

Related Security Rules (click to view)
ApexInsecureEndpointApexSuggestUsingNamedCredAvoidHardcodedCredentialsInFieldDeclsAvoidHardcodedCredentialsInHttpHeaderAvoidHardcodedCredentialsInVarAssignAvoidHardcodedCredentialsInVarDeclsUseHttpsCallbackUrlConnectedAppAvoidInsecureHttpRemoteSiteSettingAvoidDisableProtocolSecurityRemoteSiteSetting
Question
How can I ensure my application will pass security review when connecting to external platforms?
Recommended Answer Update
To ensure your application passes the security review when connecting to external platforms, follow these steps: 1. **Comprehensive Testing**: - Test the full scope of your solution, including all external endpoints, using both manual testing and automated security scanner tools. - Ensure external endpoints securely transfer credentials and data using HTTPS protocols. 2. **Address Security Violations**: - Document and address any false-positive security violations. - Fix all code that doesn't meet Salesforce security guidelines. 3. **Permissions for Testing**: - Obtain necessary permissions to perform security testing on external endpoints you don't own. - Follow Salesforce's guidelines for IP addresses and domains to allow. 4. **Automated Scanning**: - Use tools like Source Code Scanner (Checkmarx) and Dynamic Application Security Test (DAST) to identify vulnerabilities. - Run these scans periodically throughout development. 5. **Secure External Endpoints**: - Ensure external endpoints used for authenticating users or transferring Salesforce data comply with Salesforce security standards. - Use Named Credentials for secure authentication instead of hardcoded credentials. - Validate that all external connections use secure HTTPS protocols. 6. **Prepare Documentation**: - Submit updated scan reports, false-positive documentation, and solution documentation as part of the security review. 7. **Address Review Feedback**: - If issues are identified during the review, address them across the entire solution and request a follow-up review if needed. By following these steps and adhering to Salesforce's security guidelines, you can improve the likelihood of passing the security review.
Reasoning
I made minimal refinements to improve clarity and security focus without changing the structure or adding new content. The changes include: (1) Clarified 'does not meet' to 'doesn't meet' for conversational tone, (2) Changed 'you do not own' to 'you don't own' for consistency, (3) Enhanced step 5 by mentioning Named Credentials and HTTPS validation to align with security best practices. These changes maintain the original answer's length and detail level while improving readability. For security rules selected: ApexInsecureEndpoint relates to the FAQ's emphasis on securing external endpoints and ensuring proper HTTPS usage. ApexSuggestUsingNamedCred connects to the recommendation about secure credential management when connecting to external platforms. The hardcoded credentials rules (AvoidHardcodedCredentialsInFieldDecls, AvoidHardcodedCredentialsInHttpHeader, AvoidHardcodedCredentialsInVarAssign, AvoidHardcodedCredentialsInVarDecls) relate to the FAQ's guidance on securely transferring credentials to external endpoints. UseHttpsCallbackUrlConnectedApp, AvoidInsecureHttpRemoteSiteSetting, and AvoidDisableProtocolSecurityRemoteSiteSetting all relate to the FAQ's emphasis on ensuring external endpoints use secure protocols and comply with Salesforce security standards.
Reasoning References