You are developing an ASP.NET MVC application that uses forms authentication. The application
uses SQL queries that display customer order data.
Logs show there have been several malicious attacks against the servers.
You need to prevent all SQL injection attacks from malicious users against the application.
How should you secure the queries?
A.
Check the input against patterns seen in the logs and other records.
B.
Escape single quotes and apostrophes on all stringābased input parameters.
C.
Implement parameterization of all input strings.
D.
Filter out prohibited words in the input submitted by the users.
Explanation:
SQL Injection Prevention, Defense Option 1: Prepared Statements (Parameterized Queries)
The use of prepared statements (aka parameterized queries) is how all developers should first be
taught how to write database queries. They are simple to write, and easier to understand than
dynamic queries. Parameterized queries force the developer to first define all the SQL code, and
then pass in each parameter to the query later. This coding style allows the database to distinguish
between code and data, regardless of what user input is supplied.
Prepared statements ensure that an attacker is not able to change the intent of a query, even if SQL
commands are inserted by an attacker.
SQL Injection Prevention Cheat Sheet