プログラム内で文字列処理を誤った際に引き起こされるセキュリティ上の問題としては、「バッファオーバーフロー」と「危険な文字列のチェック漏れ」に大別できます。もちろん、文字列処理によるセキュリティ問題の要因はこの2つだけではないでしょうが、この2つを防ぐことにより、多くの問題が対策できるのではないかと思います。
バッファオーバーフロー
多くのアプリケーションで発生しているバッファオーバーフローは、ほとんどの場合、アプリケション内で文字列およびそれを受け入れる変数の長さを適切に管理していないことに起因します。逆に言えば、文字列および変数の長さを適切に管理さえできれば、大半のバッファオーバーフローを防ぐことができます。
本稿に興味を示すような方にいまさらバッファオーバーフローのメカニズムや危険性を説明する必要はないでしょうし、最近ではバッファオーバーフローを防ぐ有用なツール類も増えてきていますので、本稿ではバッファオーバーフローを防ぐ手段よりも、どのような場合にバッファオーバーフローを起こしやすいかに重点を置いて説明しています。