Мы запустили сканирование Fortify и столкнулись с некоторыми проблемами контроля доступа: базы данных. Код получает значение текстового поля и устанавливает его в строковую переменную. В этом случае он передает значение из TextBox хранимой процедуре в базе данных. Любые идеи о том, как я могу обойти эту проблему контроля доступа: база данных?
Без надлежащего контроля доступа метод ExecuteNonQuery() в DataBase.cs может выполнить инструкцию SQL в строке 320, содержащую первичный ключ, контролируемый злоумышленником, что позволит злоумышленнику получить доступ к несанкционированным записям.
Источник: Tool.ascx.cs:591 System.Web.UI.WebControls.TextBox.get_Text()
rptItem.FindControl("lblClmInvalidEntry").Visible = false;
ToolDataAccess.UpdateToolData(strSDN, strSSNum, strRANC, strAdvRecDate, strAdvSubDate, strClmRecDate, strClmAuth, strClmSubDate, strAdvAuth, txtNoteEntry.Text);
Приемник: DataBase.cs:278
System.Data.SqlClient.SqlParameterCollection.Add()
// Add parameters
foreach (SqlParameter parameter in parameters)
cmd.Parameters.Add(parameter);