memcpy() – забранена
След множество уязвимости, в чиято основа стоят функции, манипулиращи буфера, Microsoft най-накрая решиха официално да наложат стандарта да не се използват някои от тях – strcpy(), strcat(), strncpy(), strncat(), gets(), memcpy(). Само последната е виновна за следните дупки:
И най-вероятно още доста, особено като се има в предвид, че препълването на буфера ( buffer overflow ) е всъщност любимия начин за хакване и неоторизирано изпълнение на код напоследък.
Инициативата на Майкрософт това да се промени се нарича SDL ( Security Development Lifecycle ) и можете да намерите пълния списък на функциите, които не е препоръчително да използвате.
Те са заменени от своите по-сигурни версии, например memcpy_s(), която има допълнителен параметър – големина на буфера ( ако не друго, поне така програмистите ще се замислят колко точно трябва да е голям този буфер )
Подобни статии:





January 11th, 2010 at 14:33
Забранявае на функции е пълна глупост, некадърните програмисти да пишат на С# или JAVA, да се занимават с С/С++.
January 13th, 2010 at 15:43
Един мой преподавател казваше, че C е най-прекрасния език да се прецакаш сам себе си…
Освен това ти колко програмисти си срещал, които казват за себе си “Аз съм некадърен”, м ?