У меня есть элемент управления, в котором пользователь должен ввести название компании. Редактировать элемент управления местная осведомленность.
Я хочу правильно защитить его от SQL injection
атаки и от ввода пользователем бессмысленных символов.
Я думал об отбрасывании двоеточие, а также точка с запятой в моей процедуре подкласса в ответ на WM_CHAR
и выполнить проверку еще раз в ответ на EN_CHANGE
, Если возникнет проблема, я сообщу об этом пользователю и отключу кнопку «Сохранить».
Поскольку мое приложение ориентировано на локали, мне нужно местная осведомленность функции для проверки входного символа.
Пока я нашел IsCharAlpha
а также IsCharAlphaNumeric
которые кажутся осведомленными о локали (мой английский не самый лучший, так что, возможно, я неправильно прочитал документацию MSDN, извиняюсь за это).
Я также искал здесь похожие вопросы, но не нашел ни одного.
Будет отбрасывать точка с запятой только делать трюк, или мне нужно принять во внимание некоторые другие символы?
Я на «правильном пути» с подклассами + EN_CHANGE
или есть лучший способ добиться этого? Если есть, можете ли вы указать мне правильное направление?
Спасибо.
С наилучшими пожеланиями.
Атаки SQL-инъекций происходят только при динамическом создании операторов SQL с использованием пользовательского ввода без предварительной проверки или экранирования ввода. Не создавайте операторы SQL динамически! Используйте параметризованные запросы или хранимые процедуры, тогда нет никакого риска SQL-инъекции вообще.
Других решений пока нет …