Лекция: Рассуждения по большей части применимы как к компилируемым, так и к интерпретируемым программам.

Во-первых, самая распространенная ошибка для программистов на С/ C++, как обычно, связана с

возможностью переполнения буфера (см. главу 9). Эта проблема особенно характерна для С/С++, поскольку

Программисту на Peri нет необходимости заботиться о ручном выделении памяти под строки.

Например, для получения данных, переданных методом POST, можно написать следующий код: char buff

[4096],

int length = atoi(getenv(«CONTENT_LENGTH»)); fread(buff, 1, length,

Stdin);

Возможное переполнение буфера налицо. Справиться с этой проблемой очень легко — достаточно

динамически выделить буфер требуемой длины:

Int length = atol(getenv( «CONTENT_LENGTH» ) ): char* buff = new

char[length]: lf(buff) fread(buff, 1, length, stdin);

Потенциально опасны многие строковые функции, определяющие конец строки по завершающему нулю.

Поэтому вместо функций strcpy, strcat, stremp и т. п. настоятельно рекомендуется использовать их аналоги

Strncpy, strncat, strncmp, позволяющие указать максимальное количество обрабатываемых символов.

Казалось бы, можно ограничить объем вводимой информации указанием соответствующих параметров в

Тэгах формы, но это еще одно очень опасное заблуждение, которого мы коснемся чуть позже.

Возможно, именно из-за необходимости постоянно контролировать размер буфера многие начинающие (и не

еще рефераты
Еще работы по информатике