FAQ-000894 - External Platform Security / Third-Party API Integration Security

Current Status:VALID_RESPONSEErrorUnable to AnswerSuggests Case

Current FAQ

Question
My application integrates with a third-party API that has a security flaw I cannot fix. How should I handle this for the security review?
Answer
To handle third-party API security flaws during the AppExchange Security Review, follow these steps: 1. **Thorough Testing**: Test your solution, including the third-party API integrations, to identify any security flaws. 2. **Secure Communication**: Use secure protocols like HTTPS or SFTP to encrypt data during transmission. 3. **Static Resources**: Avoid dynamically loading third-party JavaScript files from external endpoints. Instead, save them in your package's static resources folder and load them using a $Resource URL for better security and version control. 4. **Document False Positives**: If there are false positives, document them with detailed explanations in your submission. 5. **Remediate Vulnerabilities**: Fix any identified vulnerabilities in your code and request a follow-up review through the AppExchange Partner Console. Submit the updated solution and required documentation. For further assistance, you can schedule a technical office hours appointment with the Product Security team to address specific concerns. Let me know if you need more details!
Enhancing FAQ...

Enhancing FAQ with AI recommendations...

AI Recommended Enhancement

Related Security Rules (click to view)
ApexInsecureEndpointApexSuggestUsingNamedCredAvoidHardcodedCredentialsInHttpHeaderAvoidInsecureHttpRemoteSiteSettingLoadJavaScriptHtmlScriptLoadJavaScriptIncludeScript
Question
My application integrates with a third-party API that has a security flaw I cannot fix. How should I handle this for the security review?
Recommended Answer Update
To handle third-party API security flaws during the AppExchange Security Review, follow these steps: 1. **Thorough Testing**: Test your solution, including the third-party API integrations, to identify any security flaws. 2. **Secure Communication**: Use secure protocols like HTTPS to encrypt data during transmission. Avoid HTTP endpoints for API calls. 3. **Use Named Credentials**: Store API credentials securely using Named Credentials rather than hardcoding them in your code or HTTP headers. 4. **Static Resources**: Avoid dynamically loading third-party JavaScript files from external endpoints. Instead, save them in your package's static resources folder and load them using a $Resource URL for better security and version control. 5. **Document False Positives**: If there are false positives, document them with detailed explanations in your submission. 6. **Remediate Vulnerabilities**: Fix any identified vulnerabilities in your code and request a follow-up review through the AppExchange Partner Console. Submit the updated solution and required documentation. For further assistance, you can schedule a technical office hours appointment with the Product Security team to address specific concerns. Let me know if you need more details!
Reasoning
The main improvements focus on aligning the answer with specific security rules and making it more actionable. I removed the mention of SFTP (which isn't relevant for API communication) and added specific guidance about Named Credentials and avoiding hardcoded credentials, which directly addresses common security scanner findings. The selected security rules are all highly relevant: ApexInsecureEndpoint relates to the secure communication guidance, ApexSuggestUsingNamedCred and AvoidHardcodedCredentialsInHttpHeader address credential security for third-party API integrations, AvoidInsecureHttpRemoteSiteSetting covers the HTTPS requirement, and the JavaScript loading rules (LoadJavaScriptHtmlScript, LoadJavaScriptIncludeScript) directly relate to the static resources guidance for third-party JavaScript files. Each rule addresses specific security concerns that developers commonly encounter when integrating with third-party APIs and would be flagged by security scanners in this context.
Reasoning References