【发布时间】:2013-11-14 14:40:57
【问题描述】:
通常可以通过 codesign 命令行调用查看应用程序是否存在沙盒权利。例如,调用这个
codesign --display --entitlements :- /Applications/Notes.app/ | grep sandbox
会产生这个输出
Executable=/Applications/Notes.app/Contents/MacOS/Notes
<key>com.apple.security.app-sandbox</key>
其中 com.apple.security.app-sandbox 键表示应用在沙盒中运行。
在 Mavericks 上,一些 XPC 帮助应用程序在 Activity Monitor 中显示为在沙箱中运行,但在它们上调用 codesign 不会显示任何内容。 Safari 的 XPC 帮助应用程序之一的示例:-
codesign -display --entitlements :- /System/Library/PrivateFrameworks/WebKit2.framework/Versions/A/XPCServices/com.apple.WebKit.WebContent.xpc/Contents/MacOS/com.apple.WebKit.WebContent | grep sandbox
只返回这个:-
Executable=/System/Library/PrivateFrameworks/WebKit2.framework/Versions/A/XPCServices/com.apple.WebKit.WebContent.xpc/Contents/MacOS/com.apple.WebKit.WebContent
我还尝试以编程方式检查捆绑包是否为沙盒,使用this article 中描述的代码,但同样返回未沙盒,即使活动监视器明确指出它是。
是否可以检查这样的 xpc 包,看看是否会在沙箱中执行并使用沙箱权利?
【问题讨论】:
标签: macos security sandbox osx-mavericks xpc