我们正在使用帮助工具开发一个应用程序,该工具使用SMJobBless安装到系统中。这如预期的那样起作用,但有一个警告。
我们经常进行自动部署--有时每周超过一次。每次帮助工具版本更改时,我们都会重新注册它--导致密码提示.这两个因素很快就会对我们的用户产生刺激。
在初始帮助工具安装过程中,是否有一种方法只显示一次密码提示?后续的更新会在没有提示的情况下发生吗?也许有一种方法可以利用现有的Helper工具来安装更新版本的自身?
发布于 2016-10-05 18:15:44
简短回答:不。SMJobBless()总是提示输入管理员凭据。没有办法阻止它的提示。如果调用此API,它将提示(或失败)。
关于解决办法的较长答案:
如果您的助手工具是以admin/root权限运行的,理论上它可以用一个新版本替换它自己。在做这件事之前要仔细考虑一下。很难做到这一点,维护安全是非常困难的,即使是主要的OSes在安装程序功能上也有脆弱性,这是一个强有力的迹象,表明走这条路线的风险可能大于收益。
如果你必须继续,请继续读下去:
SecRequirementCreateWithString和SecCodeCheckValidity。您必须确保您的助手工具不会被诱骗使用(或执行)恶意代码来替换自己,否则您将打开您的软件,直到成为一个微不足道的根攻击向量。
还请注意:无论苹果目前为验证SMJobBless安装的辅助工具做了什么,可以想象,它们将来可能会收紧需求,拒绝运行自通过SMJobBless安装后修改过的辅助工具。最安全的方法(在多个方面)是在需要安装/更新助手时只调用SMJobBless。
https://stackoverflow.com/questions/39846072
复制相似问题