От клиента было обнаружено потенциально опасное значение Request.Form

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, но это более читаемо. Кроме того, это всего лишь пример, делающий некоторые дополнительные предположения, но идея должна быть ясной.)

13
задан MAC 2 June 2010 в 06:07
поделиться

1 ответ

Добавьте файл 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" />

См. Также

23
ответ дан 1 December 2019 в 06:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: