Уязвимости SQL-инъекций - PullRequest
       7

Уязвимости SQL-инъекций

3 голосов
/ 16 декабря 2011

У нас есть веб-сайт ASP.NET/C#. Наши разработчики находятся в Азии, и я только что обнаружил, что они размещают сырой SQL-код на сайте.

Я обеспокоен тем, что теперь мы уязвимы для атак с использованием SQL-инъекций. Кто-нибудь знает, как я могу обнаружить уязвимости на сайте и каков наилучший способ закрыть их?

Ответы [ 4 ]

6 голосов
/ 16 декабря 2011

Попытка обнаружить уязвимости с фронта может помочь, но на самом деле вы должны смотреть на код, в частности на весь код, связанный с DbCommand, SqlCommand и т. Д. Ключевой момент, как вы четкоЗнаете, никогда не объединять пользовательский ввод в запрос, а параметризировать его.Существуют хорошие инструменты, которые могут упростить эту параметризацию или, по крайней мере, сделать ее проще, чем делать это вручную.Например, если у вас есть:

using(var cmd = conn.CreateCommand()) {
    cmd.CommandText = "delete from Orders where id = " + id;
    cmd.ExecuteNonQuery();
}

, то такой инструмент, как dapper-dot-net, позволит вам делать такие вещи:

conn.Execute("delete from Orders where id = @id", new {id});

, что на меньше код, в основном копируемый, но полностью безопасный для инъекций и допускающий повторное использование плана запросов.

4 голосов
/ 16 декабря 2011

Посмотрите на Scrawlr или Acunetix

Это инструменты для сканирования веб-сайтов на наличие уязвимостей, особенно для SQL-инъекций.Другой способ - подписаться на одну из компаний, отвечающих требованиям PCI-DSS.Мы используем SecurityMetrics и обычно банки предлагают скидки на них.

1 голос
/ 16 декабря 2011

Хорошо, я бы приказал им прислать вам исходный код и выполнить представление кода (или сделать это у опытного разработчика)

1 голос
/ 16 декабря 2011

Сначала прочтите эту статью: Как: защитить от SQL-инъекций в ASP.NET

Я бы удостоверился, что все вы используете хранимые процедуры исключительно или если у вас есть regualr sqlКоманды, которые вы используете их только с параметрами и никогда не динамически формируют содержимое свойства CommandText

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...