[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

バッファオーバーフロー (buffer overflow)

pointこの用語のポイント

point入れ過ぎちゃったよ

point溢れちゃったよ

スポンサーリンク

簡単に書くよ

バッファオーバーフロー (buffer overflow)とは

「これくらい入れるかな~」と思って確保していた領域よりもたくさん入れちゃって、入りきらなかった状態のこと
です。

image piyo

詳しく書くよ

バッファ」+「オーバーフロー」で「バッファオーバーフロー」です。

バッファオーバーフロー

バッファは「データを一時的に溜めておく場所」程度に解釈してください。
オーバーフローは「いやんっ、溢れちゃった(*ノノ)」な状態です。

つまり「バッファオーバーフロー」は「データを溜めておく場所(バッファ)が溢れた(オーバーフローした)状態」を指す用語です。
一体何が溢れたのか?
データです。

プログラミングでは、変数を扱います。
変数は「データを入れておく箱」です。
中にデータ(値)を入れます。

バッファオーバーフロー2

この変数ですが、実際にはメモリ上に場所を確保します。
メモリの上に「ここからここまで、この変数が使うから」と値を入れておくための領域を確保するのです。

バッファオーバーフロー3

よく分からない方は、花見の場所取りをイメージしてください。
場所を取るために下に敷いたブルーシートが変数です。
その上に座る上司や先輩、花見の参加者が値です。

花見の参加者が多くなると、ブルーシートに座りきれません。
ブルーシートの外にはみ出してしまうでしょう。
そうすると、隣で花見をしている人たちの迷惑になってしまうかもしれませんね。

コンピュータの世界も同じです。

例えば、3文字まで入る変数をメモリ上に確保したとしましょう。

バッファオーバーフロー4

そこに4文字以上入れると、入りきらない分が溢れてしまいます。

バッファオーバーフロー5

もし隣の領域を他の変数として使っていたらどうでしょう?

バッファオーバーフロー6

他の変数の値を書き換えてしまうかもしれませんね。

バッファオーバーフロー7

これは本来想定していない事態です。
困ったことになる可能性が高いです。

このように、本来確保していた領域よりも大きい値を入れて溢れちゃった状態がバッファオーバーフローです。

image piyo2

一言でまとめるよ

まぁ「バッファオーバーフロー」って単語が出てきたら「確保していた領域よりもたくさん入れて溢れたんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク