Попытка обнаружить уязвимости от передней может помощь, но на самом деле вы должны смотреть на код, в частности, на весь код, относящийся к DbCommand, SqlCommand и т. д. Ключевым моментом, как вы знаете, никогда не является конкатенация пользовательского ввода в запрос, а для его параметризации. доступный, который может облегчить эту параметризацию - или, по крайней мере, проще, чем сделать это вручную. Например, если у вас есть:
using(var cmd = conn.CreateCommand()) {
cmd.CommandText = "delete from Orders where id = " + id;
cmd.ExecuteNonQuery();
}
затем инструмент, как щеголеватая-дот-сеть позволит вам делать такие вещи, как:
conn.Execute("delete from Orders where id = @id", new {id});
который менее код, в значительной степени копировать-вставить, но полностью литьевой безопасна и позволяет query- план повторного использования.
Первым делом было бы удалить все встроенные (необработанные) SQL с переднего и заднего конца и использовать только хранимые процедуры, передающие значения в качестве параметров –
Передняя часть как в виде ... в формах как скрытые входы и прочее? – Corbin
Да, как в, поля ввода в формах/страницах – Rup