2011年11月24日木曜日

Mac OS X の Sandbox 設計ガイド

Mac OS X の Sandbox設計ガイド。

App Sandbox Design Guide: About App Sandbox

Sandbox化のポイント

  • Sandbox内のファイルにしかアクセスできない(iOSと同じ)
  • 証明書によるコード署名が必要(iOSアプリと同じだが開発でも必要?)
  • アクセス可能なリソースを細かく設定できる(例えばファイルはOK、カメラはNG)
  • アプリ毎にコンテナと呼ばれるディレクトリが用意される(これもiOSと同じ。ただ構成は異なる)
  • Sandboxアプリとユーザ(インターフェイス)の間を取り持つ Powerbox と呼ばれるセキュリティ機構が存在する(APIでは無い)。
  • Open and Save パネルの代わりに Powerbox が提供するパネルが表示される。またそのパネルや NSOpenPanel や NSSavePanel をプログラムから操作することはできない。
  • Sandboxアプリはファインダからファイルをドラッグ&ドロップで受け取れる。
  • XPCを使った権限の分離を推奨。



Sandboxの設定項目(Xcodeのターゲットの Summaryより)


ファイルやネットワーク、ハードウェアアクセス等様々なリソースに対する操作許可を設定することが出来る。デフォルトではすべてのアクセス権限が無い状態。


関連情報
Cocoaの日々: Mac App Store で Sandbox化が必須に

Cocoaの日々: [Mac] Lion から導入された XPC Services


- - - - -
アプリの種類によって Sandbox化にかかるコストは大分変わりそう。Officeのようなドキュメントの作成・閲覧といった利用がアプリ内で閉じているものは対応しやすい。一方、システムリソースや他アプリとの連携を前提としたツール系のアプリはそもそも Sandbox化は不可能か難しいと思われる。



0 件のコメント:

コメントを投稿