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