Strsafe.h - strsafe.h - Wikipedia

strsafe.h нестандартный заголовочный файл C, поставляемый с Windows SDK начиная с Windows XP Service Pack 2[1] который обеспечивает более безопасную обработку буфера, чем это предусмотрено стандартом C строковые функции, которые, как известно, имеют проблемы с безопасностью, связанные с переполнение буфера при неправильном использовании.

Описание

Функции, включенные в strsafe.h, заменяют стандартные функции обработки строк C и ввода-вывода, включая printf, Strlen, strcpy и strcat.[2] Для функций strsafe в качестве параметра требуется длина строки в символах или байтах, и если операция превысит длину целевого буфера, операция завершится неудачно, и строка по-прежнему будет завершена ноль в его окончательном действительном индексе, поэтому его использование в других библиотечных функциях не приведет к неопределенному поведению.[1][2] Независимые исследователи безопасности отметили, что проблемы безопасности все еще возможны с функциями из strsafe.h, если им не передана правильная длина буфера.[3] Использование этой библиотеки рекомендовано Министерством внутренней безопасности США.[4]

Рекомендации

  1. ^ а б «О Strsafe.h (Windows)».
  2. ^ а б Рихтер, Джеффри; Насарре, Кристоф. Windows через C / C ++ пятое издание. Microsoft Press. С. 11–32. ISBN  9780735663770.
  3. ^ Дасвани, Нил; Керн, Кристофер; Кесаван, Анита. Основы безопасности: что нужно знать каждому программисту. ООО "Апресс Медиа". п. 121. ISBN  9781590597842.
  4. ^ Плакош, Даниил. "Strsafe.h | Обеспечьте безопасность".

внешняя ссылка