ID非公開

2020/9/21 0:56

22回答

バッファオーバーフローの意味が分かりません。

バッファオーバーフローの意味が分かりません。 例えばサイト内の検索フォームに、 物凄い長い文字列を入れて検索する行為のことでしょうか?

ベストアンサー

2

下の方の回答への追記、という形で回答させて頂きます。 まず、下の方の仰っている、バケツのイメージはそのままで良いですが、 より正確に説明するために、 バケツは2つあって、それぞれ隣り合って置いているものとします。 便宜上、それぞれバケツA、バケツBとします。 バケツAは汚水を貯めるためのバケツとします。 バケツBは飲水を貯めるためのバケツとします。 また、バケツAには汚水を貯めればあとは処分するだけなので、誰でもこのバケツに汚水を捨ててもいいですよ!としています。 一方バケツBは飲水を入れる為のものなので安全を保つため、原則勝手に中身を変更してはいけないし、できないようにしています。 しかし、バケツA、Bはそれぞれ隣り合って置かれていますよね。 そこで悪意のある人が敢えてバケツAが溢れる程の汚水を入れたとします。 そうすれば汚水が溢れて、隣のバケツBにまで汚水が流入します。 これがバッファオーバーフローです。 実際のコンピュータでの悪用例でいうと、比較的簡単にユーザーが書き込める領域(バケツA)に攻撃コード(汚水)を仕組み、それを溢れさせることで、本来そのコードが動作してはいけない領域(バケツB)で動作してしまうということを起こされてしまう場合があります。

2人がナイス!しています

その他の回答(1件)

0

ニュアンス的にはそんな感じのイメージで大丈夫ですが、違うっちゃ違います。 バッファーオーバフローは「プログラムの実行領域がオーバしちゃってますよ!」的な意味になります。 つまり、質問者様が10Lのバケツを構えてる状態(質問者様は最大でも10Lの水だろう。と思っていると仮定)で、そのバケツめがけて20Lの水を放水したら質問者様のバケツはどうなるでしょう?というイメージですね。