SQL Injection

Description

It is possible to execute arbitrary SQL commands on the target application server's backend database. SQL Injection is a critical vulnerability that can lead to a data or system compromise.

Remediation

Always use parameterized queries when issuing requests to backend database systems. In situations where dynamic queries must be created, never use direct user input, but instead use a map or dictionary of valid values and resolve them using a user-supplied key.

For example, some database drivers do not allow parameterized queries for > or < comparison operators. In these cases, do not use a user supplied > or < value, but rather have the user supply a gt or lt value. The alphabetical values are then used to look up the > and < values to be used in the construction of the dynamic query. The same goes for other queries where column or table names are required but can not be parameterized.

Details

ID Aggregated CWE Type Risk
89.1 false 89 Active high

Links