「C/C++セキュアコーディング入門」連載一覧
-
2010/02/15
配列コピー時に犯しやすい誤りに注意する ――C/C++セキュアコーディング入門(6)
配列をコピーする際、記憶領域の扱いを適切に行わないとバッファオーバーフローにつながります。コピー元のデータ量またはコピー先の記憶領域のサイズをチェックするのが基本的な対策になりますが、誤って脆弱性を引き起こすことも多々あります。今回は、こういった配列コピー時に犯しやすい誤りについて解説します。
-
2010/01/22
sizeofオペレータを正しく使おう ――C/C++セキュアコーディング入門(5)
今回はsizeofオペレータをとりあげます。sizeofは、引数に与えたオブジェクトや型名から、その型のデータがメモリ上に占めるバイト数を求めるオペレータです。まずはsizeofオペレータの使用上の注意について説明し、その後でsizeofオペレータの誤用例を2つ紹介します。
-
2010/01/04
安全なシグナルハンドラを実装するには ――C/C++セキュアコーディング入門(4)
UNIXなどPOSIX準拠のOSでは、割り込みや例外を抽象化した「シグナル」と呼ばれる仕組みを用いてプロセスに(非)同期イベントが通知されますが、シグナルハンドラで行える処理には制約があり、これを無視したコードを書くと脆弱性につながる恐れがあります。今回はシグナルハンドラの制約に関するルールを見てみましょう。
-
2009/12/21
文字列はNULL終端させる ――C/C++セキュアコーディング入門(3)
文字列操作に関するプログラミングエラーはいくつかありますが、今回は基本的であるが間違いを犯しやすい文字列のNULL終端エラーについて解説します。
-
2009/12/01
ポインタ演算は正しく使用する ――C/C++セキュアコーディング入門(2)
ポインタ型データに対する加減算は普通の整数演算とは異なることに注意が必要です。今回はこのポインタ演算に関するコーディングエラーの例を見てみましょう。
-
2009/11/18
脆弱性体質の改善 ――C/C++セキュアコーディング入門(1)
この連載では、深刻な被害をもたらす可能性のある「プログラムの脆弱性」を未然に防ぎ、セキュアなコーディングを行うための知識やコツを紹介していきます。世界中のCのプロフェッショナルが作成したCのコーディング規約集「CERT C セキュアコーディングスタンダード」というドキュメントをベースにしています。