Acunetix Webscan
Я сканирую свое веб-приложение, которое я встроил в Asp.net. Сканер внедряет ненужные данные в систему, пытаясь выполнить слепую инъекцию Sql в систему, но я использую процедуры хранения Sql с параметризованными запросами, которые избегают слепой инъекции SQL, но эти ненужные записи хранятся в системе как обычный текст, который я очищаю. входы не принимать 'и другие параметры, связанные с sql. Теперь мой вопрос
1) Являются ли эти нежелательные записи какой-либо угрозой для системы?
2) Действительно ли мне нужно дезинфицировать входные данные, если я уже использую парамитризованные запросы с процедурами хранилища?
3) Сканер не может вводить информацию в систему, если вы не создаете последовательность входа в систему, это хорошо?
Любые другие меры предосторожности, которые я должен предпринять, пожалуйста, дайте мне знать
Спасибо
1 ответ
Как вы правильно упомянули, "ненужные" записи в вашей базе данных - это представления форм, которые Acunetix отправляет при тестировании на внедрение SQL, XSS и другие уязвимости.
Чтобы ответить на ваши вопросы конкретно:
1) Нет, эти нежелательные данные являются просто артефактом сканера, отправляющего формы. Возможно, вы захотите применить более строгую проверку к этим формам - помните, если сканер может вводить ложные данные, автоматизированный скрипт (или реальный пользователь в этом отношении) также может вставлять ложные данные.
Некоторые идеи для лучшей проверки могут включать ограничение вида ввода на основе того, какие данные должны быть разрешены в конкретной области. Например, если от пользователя ожидается ввод телефонного номера, то нет смысла разрешать пользователю вводить буквенные символы (для номера телефона должно быть достаточно цифр, пробелов, тире, скобок и знака плюс).
Кроме того, вы также можете рассмотреть возможность использования CAPTCHA для некоторых форм. Слишком много CAPTCHA могут отрицательно повлиять на пользовательский опыт, поэтому будьте осторожны, где, когда и как часто вы ими пользуетесь.
2) Если вы говорите об SQL-инъекции, нет, вам не нужно ничего делать. Параметризованные запросы - это правильный способ избежать SQLi. Однако будьте осторожны с межсайтовым скриптингом (XSS). Фильтрация символов, таких как <>'"
это не тот путь, когда имеешь дело с XSS.
Чтобы иметь дело с XSS, лучший подход (в большинстве случаев) состоит в том, чтобы использовать контекстно-зависимое исходящее кодирование, которое в основном сводится к - использовать правильное кодирование в зависимости от контекста XSS, в котором вы находитесь, и кодировать, когда данные печатаются на странице (т.е. не кодируют при сохранении данных в базу данных, кодируют при записи этих данных на страницу). Чтобы узнать больше об этом, это самый простой и наиболее полный источник, с которым я столкнулся - http://excess-xss.com/
3) Последовательность входа в систему - это способ аутентификации Acunetix в вашем приложении. Без этого сканер не сможет сканировать внутренности вашего приложения. Поэтому, если у вас нет форм (возможно, в части сайта, ориентированной на клиента), сканер не сможет вставить какие-либо данные - да, это, как правило, хорошо:)