Web application security

Injection Attacks

Overview

An injection attack occurs when an application accepts untrusted input and treats it as a command or instruction — affecting databases, operating systems, web servers, and application code.

Key concepts

  • SQL, command, LDAP, NoSQL, XML, code injection
  • Parameterized queries and input validation as primary defenses

How it works

An injection attack occurs when an application accepts untrusted input and treats it as a command or instruction — affecting databases, operating systems, web servers, and application code.

Types

TypeWhat it targets
SQL injectionMalicious database commands inserted into an input field.
Command injectionMalicious operating-system commands inserted into an input field.
LDAP injectionMalicious input changes a query sent to a directory service.
NoSQL injectionMalicious input changes a query sent to a non-relational database.
XML injectionMalicious XML content inserted into an application.
Code injectionMalicious code inserted into an application and executed by the server.

Preventing injection

  • Validate all user input before processing it.
  • Use parameterized queries for database requests.
  • Avoid passing untrusted input directly to operating-system commands.
  • Use allowlists to restrict acceptable input values.
  • Apply least privilege to application and database accounts.