我有一个bash脚本myscript加载一些AppleScript来提示用户的图形界面,要求他输入密码.
如果我直接在.app包之外运行bash文件,它可以在没有系统提示的情况下执行 do you want to allow this program to access...[stuff]?
但是如果我将相同的bash文件放在.app包中(与脚本同名),并双击.app文件,那么它将首先显示系统提示以请求用户授权.我没有为该应用添加任何特殊权利.
是否有链接解释了.app安全性与执行脚本的不同之处,而不是命令行?
我正在编写一个OS X应用程序,它具有一个带有预览附件视图的打开面板.
问题是,当我选择不在具有沙盒权限的文件夹上的文件时,我无法预览它.
在尝试打开文件之前,有没有办法判断文件是否会受到沙箱权限的限制?
我已经尝试- (BOOL)checkResourceIsReachableAndReturnError:(NSError **)error
过NSURL该类,但即使文件受到保护,它也会返回true.
在iOS应用程序中添加权利文件的目的是什么?这个Get-task-allow是否可以包含在任何其他方式中?为什么我必须在项目中包含此密钥?
我的可可应用程序设计是单个 .app(UI)和三个 XPC 服务。
主应用程序需要文件只读才能显示电源箱并在 UI 中显示所选路径
两个 XPC 服务需要文件只读
一项 XPC 服务需要文件读写
由于用户交互的流程,主应用程序会打开一个 powerbox 对话框,以允许用户选择目录并将其显示在 UI 中。然后主应用程序将其保存为安全范围的书签。书签数据根据需要通过 XPC 连接发送,每个单独的 XPC 进程解析书签以访问其自己沙箱中的这些文件。
问题是,除非我将主应用程序(打开 powerbox)设置为具有文件读写访问权限,否则需要写访问权限的 XPC 服务将无法获得它,即使其权利文件指定了文件读写访问权限。以下记录在控制台中:
deny file-write-unlink <file path>
Run Code Online (Sandbox Code Playgroud)
是否唯一的方法是为打开 powerbox 文件的主应用程序提供读写权限,或者重新设计 UI 流程以便需要写访问权限的进程显示 powerbox?最终目标是让每个进程拥有尽可能少的权限。理想的权利是在主 .app 进程中没有文件访问权限,两个 XPC 服务具有文件只读和一个 XPC 服务文件读写。谢谢!
编辑:
与用户交互以扩展您的沙箱的 OS X 安全技术称为 Powerbox。Powerbox 没有 API。当您使用 NSOpenPanel 和 NSSavePanel 类时,您的应用程序会透明地使用 Powerbox。
我有一个带有SQL Server后端的ASP.NET-MVC网站.我有许多控制器操作,要求我进行权利检查.
现在,我这样做:
public ActionResult SomeEntitledPage()
{
if (_myModel.IsMySiteAdminRole)
{
return View(new MyViewModel());
}
else
{
return View("NotEntitled", new NotEntitledViewModel(){Page = "[PageName]", SupportDG = "support@support.com"});
}
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,但感觉就像我在许多地方重复这个逻辑.
根据以下内容,将许多权利控制器操作"安全"的最佳方式(属性等)是什么?
(IsMySiteAdminRole如果没有权限,它可以检查并返回"未授权"视图.
我还想确保每个页面都没有性能损失?
asp.net asp.net-mvc entitlements asp.net-mvc-4 asp.net-mvc-5
我有一个asp.net-mvc网站,到目前为止还没有任何权利,因为它对所有人开放.许多页面都是带有文本框,选择下拉列表等的详细表单
我现在需要更改它以使许多现有页面"有权",因此只有某些人具有编辑功能,而其他人都看到了只读页面.我想知道我是否应该
为我的一个现有视图创建一个单独的视图,其中的表单只读取页面上的html,并根据服务器端的权限重定向,类似于
public ActionResult OrderView()
{
var isEntitled = Model.IsEntitled()
if (isEntitled)
{
return("OrderEditableView", GetViewModel());
}
else
{
return("OrderReadOnlyView", GetViewModel());
}
Run Code Online (Sandbox Code Playgroud)
}
要么
在我看来
<% if (Model.IsEntitled) { %>
<button id="saveButton">Save Changes</button>
<% } %>
Run Code Online (Sandbox Code Playgroud)
第二个选项可以更快地实现,但会有点奇怪,因为它看起来像你可以编辑所有字段,但只是没有看到(或看到一个禁用)窗体上的保存按钮.
第一个选项似乎更干净,但我必须为我的每个屏幕创建一个新视图,这似乎很多工作(目前超过100个视图)
这似乎是一种常见的情况所以我想看看是否有处理这种情况的最佳做法.显然,我正在寻找一个解决方案,考虑到我目前的情况,但如果有一些模式或解决方案被认为是最佳实践,或者如果我从头开始,我也会感兴趣.
如何检查在 OSX 应用程序运行时是否启用了沙箱?
我需要它来对我的库进行一些断言测试,这些测试可以在不同的环境中运行。
我在构建应用程序时遇到此错误:
clang:错误:没有这样的文件或目录:'__entitlements'
使用Xcode 8.2.
我正在尝试使用 KeyChainAccess 实现钥匙串共享。我已经构建了两个非常基本的应用程序:应用程序一将字符串写入共享钥匙串,应用程序二从共享钥匙串读取数据并显示它。
我的应用程序一代码:
override func viewDidLoad() {
super.viewDidLoad()
//save item to keychain
let keychain = Keychain(service: "app.test", accessGroup: "xxxxx.xxxxx.xxxxx.Keychain-Sharing")
do {
try keychain.set("Some Data Set in app one", key: "sharedData")
print("Success")
label.text = "Success"
}
catch let error {
print("Keychain write failed: \(error)")
label.text = "Keychain write failed: \(error)"
}
}
Run Code Online (Sandbox Code Playgroud)
我的应用程序二代码从共享钥匙串读取和显示:
override func viewDidLoad() {
super.viewDidLoad()
//load item from keychain
let keychain = Keychain(service: "app.test", accessGroup: "xxxxx.xxxxx.xxxxx.Keychain-Sharing")
let data = try? keychain.get("sharedData")
print("Data from Keychain: \(data ?? "nil")") …Run Code Online (Sandbox Code Playgroud) 我遇到了一个奇怪的问题,我没有更改 expo app.json 中的任何 expo 设置,突然 Apple 拒绝存档,原因如下:
错误 ITMS-90164:“无效的代码签名权利。应用程序包签名中的权利与配置文件中包含的权利不匹配。根据配置文件,包包含不允许的键值:'[ ]' 用于“Payload/ExpoKitApp.app/com.company.appname”中的密钥“com.apple.security.application-groups”。
我的世博会配置如下所示:
{
"expo": {
"name": "App Name",
"slug": "app-name-slug",
"version": "1.1.1",
"orientation": "portrait",
"icon": "./src/assets/icon.png",
"splash": {
"image": "./src/assets/splash.png",
"resizeMode": "cover",
"backgroundColor": "#000000"
},
"updates": {
"fallbackToCacheTimeout": 0
},
"assetBundlePatterns": [
"**/*"
],
"ios": {
"supportsTablet": false,
"bundleIdentifier": "com.company.appname",
"buildNumber": "1.1.1",
"infoPlist": {
"NSCameraUsageDescription": "App Name uses your camera to allow you to upload a profile picture.",
"NSPhotoLibraryUsageDescription": "App Name uses your photos to allow you to upload …Run Code Online (Sandbox Code Playgroud) entitlements ios provisioning-profile expo app-store-connect
entitlements ×10
ios ×4
macos ×3
asp.net-mvc ×2
appkit ×1
asp.net ×1
bash ×1
cocoa ×1
expo ×1
forms ×1
ipad ×1
iphone ×1
keychain ×1
nsopenpanel ×1
nsurl ×1
objective-c ×1
readonly ×1
xcode ×1
xpc ×1