strsafe.h

strsafe.hは、Windows XP Service Pack 2 [ 1 ]以降のWindows SDKに付属する非標準のCヘッダーファイルです。標準のC文字列関数よりも安全なバッファ処理を提供します。標準のC文字列関数は、正しく使用しないと バッファオーバーランなどのセキュリティ上の問題が発生することが広く知られています

説明

printfstrsafe.hに含まれる関数は、、、などの標準C文字列処理および入出力関数を置き換えます。[ 2 ]strlen strsafe関数は、文字列の長さを文字数またはバイト数でパラメータとして必要とし、操作が宛先バッファの長さを超える場合、操作は失敗し、文字列は最終的な有効なインデックスでnullで終了するため、他のライブラリ関数で使用しても未定義の動作にはなりません。 [ 1 ] [ 2 ] 独立したセキュリティ研究者は、strsafe.hの関数に正しいバッファ長が渡されない場合、セキュリティ上の問題が発生する可能性があることを指摘しています。 [ 3 ]このライブラリの使用は、米国国土安全保障省によって推奨されています。[ 4 ]strcpystrcat

参考文献

  1. ^ a b「Strsafe.h(Windows)について」 2022年6月20日
  2. ^ a bリヒター、ジェフリー;ナサール、クリストフ。C/C++ 第 5 版経由の Windows。マイクロソフトプレス。11 ~ 32ページ 。ISBN 9780735663770
  3. ^ニール・ダスワニ、クリストファー・カーン、アニタ・ケサヴァン著。『セキュリティの基礎:すべてのプログラマが知っておくべきこと』Apress Media LLC. 121ページ。ISBN 9781590597842
  4. ^ダニエル・プラコシュ著「Strsafe.h | セキュリティを組み込む