Ensure that user-controlled HTTP redirections are validated to prevent phishing attacks.
security-hardening
Critical
Prevent open redirect vulnerabilities in DOM updates
Ensure that URLs used in redirection are properly validated and restricted to trusted domains. Open redirects can be exploited to redirect users to malicious sites.
Ensure that all user inputs related to file paths are validated and sanitized to prevent path traversal attacks.
security-hardening
Critical
Prevent Server-Side Template Injection (SSTI)
Ensure that all user inputs in templates are properly validated and sanitized to prevent SSTI attacks.
security-hardening
Critical
Prevent SQL Injection in Queries
Using unsanitized user input in SQL queries can lead to SQL injection attacks. Use parameterized queries to protect against malicious inputs.
security-hardening
Critical
Prevent Thread Suspension from Leading to Denial of Service (DoS)
Ensure that user-controlled data is not used to suspend threads, as it can lead to Denial of Service (DoS) attacks.
security-hardening
Critical
Pulumi TS: secrets must use Config.requireSecret
In Pulumi TypeScript programs, load sensitive values with new Config().requireSecret and pass as Secret<T>, never plain strings.
infra-as-codesecrets-credentials+1
Critical
Require explicit consent before processing sensitive data
Before handling sensitive personal data (e.g., health, biometric), verify a valid consent record and attach its ID to the processing context. Provide a path to revoke consent and stop further processing.
compliance-lgpdapi-conventions+1
Critical
Secure Connection Strings from Injection
Allowing user input in connection strings can lead to injection attacks. Always validate and sanitize inputs before constructing connection strings.
security-hardening
Critical
Server-side requests should not be vulnerable to forgery attacks
Identify server-side requests that do not validate input sources. SSRF vulnerabilities allow attackers to make unauthorized requests on behalf of the server. Restrict and validate request sources.
Skipping certificate validation enables attackers to impersonate trusted entities and intercept secure communications.
security-hardening
High
Add comprehensive input validation
Validate required parameters at boundaries using require/requireNotNull or explicit validators; fail fast with actionable messages.
error-handlingsecurity-hardening
High
Add comprehensive null checks for parameters
Validate method inputs up front with null checks or use Objects.requireNonNull and meaningful messages.
error-handlingsecurity-hardening
High
Add input validation for API parameters
Validate presence, format, and ranges for incoming parameters before processing.
api-conventionssecurity-hardening
High
Add input validation for critical parameters
Validate presence, type, and range of critical inputs at boundaries (API, CLI, jobs) and fail fast with clear messages.
api-conventionserror-handling+2
High
Add TLS and JSON audit middleware
Serve via rustls with TLS1.2+ and add middleware to log JSON audit events with user_id and request_id; never log raw tokens.
compliance-soc2-essentialssecurity-hardening+1
High
Add unique constraints for data integrity
Enforce uniqueness at the database level (unique indexes/constraints) for identifiers and natural keys.
database-query-performancesecurity-hardening+1
High
Always Validate `ModelState.IsValid` in Controllers
Failing to check `ModelState.IsValid` before processing user input can result in invalid or unverified data being accepted.
security-hardening
High
Approvals for bulk export endpoints
Protect /exports/ with role checks, fresh MFA, and rate limits; add requester and approved_by to the audit event.
compliance-soc2-essentialssecurity-hardening+1
High
Audit access to PII with purpose and actor (no raw values)
Whenever PII is read, emit an audit event capturing actor, purpose, fields touched, and legal basis; never include raw PII in the audit payload—store hashes/tokens only.
compliance-lgpdobservability-logging+1
High
Avoid building system commands from user input
Check for occurrences where user input is directly used to construct system commands. This introduces a risk of command injection. Suggest using parameterized queries or safe wrappers instead.
security-hardening
High
Avoid Constructing System Commands from User Input
Passing user input directly into system commands can lead to command injection vulnerabilities. Always sanitize inputs before execution.
security-hardening
High
Avoid Using eval() to Execute Code
Do not use the eval() function to run dynamically generated PHP code, especially if it can include user input. Look for safe alternatives like controlled function calls or explicit decision structures.