第8章 セキュアWindowsプログラミング
この章では,Windows プラットフォーム固有のシステム機能の一部を紹介するとともに,それらを利用するときに起こるセキュリティ問題について説明しています。
Windows の「パス名」は一筋縄ではいかない「くせ」を持っており,ユーザに入力させたパス名をプログラム中で使用するときは注意が必要である。ディレクトリ区切り文字に「\」と「/」の両方が混在・重複しても許されたり,ロングネームとショートネームが存在するなど,複雑な事情がある。
プロセス間通信機能を活用して,システムに常駐するサービスプロセスとユーザインタフェースをもつクライアントプロセスの連携で処理を進めるというソフトウェアの形態がある。サービスプロセスは通常高い権限で実行されるため,クライアントからの要求を無条件で受け入れて危険なシステム操作をしてしまわないよう,安全対策が必要である。
Windowsプラットフォームでセキュリティを重視したシステムを構築する際にはファイルシステムとしてNTFSを採用することが不可欠である。とくにアクセスコントロール機能は重要だ。しかしNTFSには機能が多いために,ときとして思いがけない副作用に見舞われることもある。