Проверка правильности вводимых данных


Нижеследующие управляющие сообщения могут создать проблемы для системы безопасности.

Если текст, между запросом получить его длину и моментом, когда текст показывается на экране или используется, изменен, то может произойти переполнение буфера. Чтобы избежать этого, Вы должны проверить правильность строки перед ее использованием. Кроме того, сообщения, которые извлекают  текст, такие как CB_GETLBTEXT, TB_GETBUTTONTEXT и TTM_GETTEXT не имеют параметра размера буфера, что дает возможность для его переполнения.

Когда Вы используете сообщение CB_GETLBTEXT или SB_GETTEXT, то должны сначала вызвать сообщение CB_GETLBTEXTLEN или SB_GETTEXTLENGTH, чтобы получить размер буфера. Некоторые из этих сообщений, такие как TB_GETBUTTONTEXT, LVM_GETISEARCHSTRING и TVM_GETISEARCHSTRING, можно вызвать со значением параметра НУЛЬ (NULL), чтобы получить длину строки перед активизацией сообщения, извлекающем строку.

Сообщение, на которое Вы должны обратить особое внимание, - это сообщение строки состояния SB_GETTIPTEXT. Это сообщение не дает никакого способа сделать запрос длины строки, которая должна извлечься.

 

Назад в оглавление
На главную страницу

Hosted by uCoz