Есть ли какая-либо выгода для безопасности при использовании хранимой процедуры для переключения логического значения из флажка - PullRequest
3 голосов
/ 26 июля 2010

У меня есть значение булевой переменной, хранящееся в базе данных SQL Server. Это представляется конечным пользователям как флажок на веб-странице ASP.NET. Переключение флажка естественным образом обновляет значение в базе данных.

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

Ответы [ 3 ]

1 голос
/ 26 июля 2010

Вероятность атаки через пользовательский интерфейс представляет собой большую угрозу для поля ввода, такого как текстовое поле, а не для флажка как такового.Хорошо быть осторожным, но использование хранимых процедур и использование команды с параметрами - один из способов справиться с этим типом атаки.Или, если вы используете SQL, убедитесь, что вы используете @parameters для значений, а не вводите значения непосредственно в запрос.

Также кодирование значений помогает решить некоторые проблемы.

HTH.

1 голос
/ 26 июля 2010

ASP.Net по умолчанию проверяет возвращаемые значения, чтобы убедиться, что он получает то, что ожидает.Затем он вводит значение в YourCheckBox.Checked, поэтому в этот момент возвращаемое значение должно быть истинным или ложным.Нельзя сказать, что флажок непроницаем - никто не скажет, что, возможно, где-то есть кто-то, кто все еще может использовать его злонамеренно, - но на сайте, вероятно, больше угроз безопасности, чем флажок.Я бы потратил ваше время на просмотр текстовых полей, выпадающих списков и сессии.Вы можете вернуться к флажку, если вы действительно чувствуете, что все остальное полностью безопасно.

Конечно, если вы просто используете флажок HTML, то проверять возвращаемое значение не будет и, следовательно, менее безопасно.В этом случае я бы предложил изменить его на флажок asp.net.

1 голос
/ 26 июля 2010

Ну, как правило, вы всегда должны использовать хранимые процедуры или параметризованный sql.Можете ли вы сделать это, нажав на флажок?Действительно, все зависит от того, как написан код.На первый взгляд, я бы сказал, нет, но существует большое количество возможностей, которые могут повлиять на это.

Помните, что страница, когда она публикует сообщения, отправляет по существу текстовое значение на сервер.Кто-то может отправить SQL-инъекцию вместо значения флажка.Теперь asp.net неплохо справляется с этим, но это не значит, что если код написан для обхода проверки asp.net и т. Д. И т. Д., Этого не произойдет.Я узнал о программировании, что каждый раз, когда я думаю: «Это невозможно сделать».в общем я ошиблась.Я всегда выбираю самый безопасный путь в отношении безопасности.

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