用語「バッファオーバーフロー」について
バッファオーバーフロー
バッファが溢れる (オーバーフローする) ことです。本来書き込まれるべきメモリ領域からデータが溢れ、別の (本来書き込まれてはならない) 場所に書き込まれてしまいます。その結果として何が起きるのかは様々ですが、時には任意のコードを実行されてしまうこともあって、致命的なセキュリティホールになることがあります。
これは主に C言語で書かれたプログラムにおいて、想定よりも長いデータを処理しきれない場合に発生します。
C言語では、何かをメモリに格納する際、プログラムの中でしっかりメモリを確保してやらないといけません。文字列リテラルはあっても文字列型の変数はありませんので、文字列は char 型配列に格納するのが定石ですが、この配列のサイズは自動的に拡張されたりはしないので、何も考えずに長いデータを格納しようとすると、あっさりはみ出してしまいます。
- 「バッファオーバーフロー」にコメントを書く