Payment Security Audit
ecommerce-payment-security · v1.1.0 · paid
Evaluates code-level payment implementation security covering Stripe/payment provider SDK usage, client-side tokenization, webhook verification, fraud prevention patterns, and payment error handling.
Payment Integration Security
payment-integration · weight 0.3
- criticalSecret API keys are not exposed to the client-side bundleab-001153
- criticalWebhook signature verification is implemented on all payment webhooksab-001154
- criticalRaw card numbers (PAN) are never sent to the backend; tokenization is usedab-001155
- criticalTokenization occurs strictly client-side via provider SDKab-001156
- highAPI keys and secrets are loaded exclusively from environment variablesab-001157
- highIdempotency keys are used on all state-changing charge requestsab-001158
- highOfficial provider SDKs are used over custom card input fieldsab-001159
Client-Side Payment Handling
client-side-handling · weight 0.3
- highNo sensitive payment data stored in localStorage or sessionStorageab-001160
- highHTTPS is enforced on all payment and checkout pagesab-001161
- high3D Secure (SCA) flow is implemented and handled correctlyab-001162
- highRate limiting is applied to payment submission endpointsab-001163
- highRollback or cleanup logic exists if post-payment database updates failab-001164
- highDuplicate payment prevention logic existsab-001165
Fraud Prevention
fraud-prevention · weight 0.2
- mediumCard details are not logged in browser console or analytics eventsab-001166
- mediumAddress Verification System (AVS) checks are enabledab-001167
- mediumCVC/CVV verification is enabledab-001168
- mediumGeneric error messages are shown to users; no raw exceptions or stack traces exposedab-001169
- mediumDecline codes are logged internally but not exposed to the clientab-001170
Payment Error Handling
payment-errors · weight 0.2
- lowWebhook endpoints return 200 OK quickly before complex processingab-001171
- lowWebhook retry logic is handled with idempotent processing designab-001172
- lowGraceful handling of insufficient funds vs generic declinesab-001173
- lowAudit logging of failed payment attempts for security monitoringab-001174
- lowCorrect currency code usage to prevent conversion errorsab-001175
- lowClear and descriptive statement descriptors are set in charge payloadsab-001176