UACで有り勝ちな間違い

Vista以降に導入されたUACを考慮せずに不具合を引き起こす原因として有り勝ちなのがアプリケーション共通データの誤った扱いである。
アプリケーション共通データの格納庫としてよく使うのがINIファイルだ。
最近ではConfigファイルを使うことも多い。
XPまでは大抵のユーザーは管理者権限でアプリケーションを実行するのが一般的であり、INIファイルもユーザ間で平等な扱いが当たり前だった。
ところがVista以降では、管理者権限でログインしているユーザーでも、UACにより権限を標準ユーザへ縮小させるため、互いに影響を与えあうようなアプリケーション共通データのアクセスは制限される。このようなUAC管理対象リソースへのアクセスには管理者権限への昇格が必要となるが、権限の変化はプロセス単位でしか認められていないため、アプリケーションを管理者権限で実行するか、アプリケーション内で管理者権限のプロセスを発行する等の特殊な手続きが必要となってくる。
Vista以前のアプリケーションでは当然このような概念はなく、Windows文化的にも管理者権限で業務を行うことを是としてきた。このような背景からUACに対応できないアプリケーションは多い。例えば、インストール先をProgramFilesとすると、このフォルダがUAC管理対象リソースであることから、ここに配備されるリソースへのアクセスで不具合を引き起こしてしまう。これにVirtualStoreが絡み、現象はさらに複雑化する。
このような問題を避けるためにUACを無効にしたり、無闇に管理者権限でアプリケーションを実行させるのは、セキュリティの観点から大いに問題がある。
アプリケーションとしては、UAC管理対象リソースの生成や設定等の管理者権限が必要な手続きはインストーラ等の特殊な手続きに限定し、通常の手続きでは行わないことを徹底させ、利用者の理解を求めていくことが必要だろう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です