SQL Injection может выполняться на любом входе, который может повлиять на пользователя, который не был правильно экранирован перед использованием в запросе.
Одним из примеров может быть переменная get, подобная этому:
http//www.example.com/user.php?userid=5
Теперь, если сопроводительный PHP-код выглядит примерно так:
$query = "SELECT username, password FROM users WHERE userid=" . $_GET['userid'];
// ...
Вы также можете легко использовать SQL-инъекцию:
http//www.example.com/user.php?userid=5 AND 1=2 UNION SELECT password,username FROM users WHERE usertype='admin'
(конечно, пробелы должны быть заменены на %20
, но это более читаемо. Кроме того, это всего лишь пример, делающий некоторые дополнительные предположения, но идея должна быть ясной.)
Добавьте файл web.config, содержащий
<system.web>
<pages validateRequest="false" />
</system.web>
, в каталог со страницей, имеющей рассматриваемую форму.
Полное описание см. http://www.asp.net/learn/whitepapers/request-validation .
Если вы используете asp.net 4.0, вы можете попробовать
<httpRuntime requestValidationMode="2.0" />
См. Также