Правильно защитить контроль редактирования от внедрения SQL и бессмысленных символов

ВВЕДЕНИЕ И СООТВЕТСТВУЮЩАЯ ИНФОРМАЦИЯ:

У меня есть элемент управления, в котором пользователь должен ввести название компании. Редактировать элемент управления местная осведомленность.

ПРОБЛЕМА:

Я хочу правильно защитить его от SQL injection атаки и от ввода пользователем бессмысленных символов.

МОИ УСИЛИЯ ДЛЯ РЕШЕНИЯ ПРОБЛЕМЫ:

Я думал об отбрасывании двоеточие, а также точка с запятой в моей процедуре подкласса в ответ на WM_CHARи выполнить проверку еще раз в ответ на EN_CHANGE, Если возникнет проблема, я сообщу об этом пользователю и отключу кнопку «Сохранить».

Поскольку мое приложение ориентировано на локали, мне нужно местная осведомленность функции для проверки входного символа.

Пока я нашел IsCharAlpha а также IsCharAlphaNumeric которые кажутся осведомленными о локали (мой английский не самый лучший, так что, возможно, я неправильно прочитал документацию MSDN, извиняюсь за это).

Я также искал здесь похожие вопросы, но не нашел ни одного.

ВОПРОС:

Будет отбрасывать точка с запятой только делать трюк, или мне нужно принять во внимание некоторые другие символы?

Я на «правильном пути» с подклассами + EN_CHANGE или есть лучший способ добиться этого? Если есть, можете ли вы указать мне правильное направление?

Спасибо.

С наилучшими пожеланиями.

0

Решение

Атаки SQL-инъекций происходят только при динамическом создании операторов SQL с использованием пользовательского ввода без предварительной проверки или экранирования ввода. Не создавайте операторы SQL динамически! Используйте параметризованные запросы или хранимые процедуры, тогда нет никакого риска SQL-инъекции вообще.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]