我想检查SSL证书是否出现在URL中,还想检查它的版本和验证类型。我创建了一个应用程序,我在其中调用NSURLConnection委托(delegate)方法通过服务器发送请求。还使用了"canAuthenticateAgainstProtectionSpace"方法,但是一旦建立连接就不会调用此方法。我如何实现这一目标? 最佳答案 iOS不会让您非常精细地访问证书信息。您有两个选择:私有(private)API或使用OpenSSL构建您自己的评估器。可以在opensourcecode中看到私有(private)证书函数.该版本可从
我最近读到有关iOS应用反编译的信息,现在我真的很担心。如以下帖子(#1和#2)所述,可以反编译分发到AppStore的iOS。这可以通过越狱来完成,我认为可以通过将应用程序从内存复制到硬盘来完成。使用一些工具可以读出字符串(字符串工具)转储头文件逆向工程汇编代码似乎不可能逆向工程为Cocoa代码。由于安全性是我创建的软件的一个特性,我想防止恶意用户重构我的安全功能(使用key加密或登录网站)。所以我提出了以下问题:有人可以用汇编重建我的保存和加密或登录方法吗?我的意思是他能理解到底发生了什么(什么时候保存到哪个路径,使用哪个key等,使用什么凭据登录到哪个网站)?我没有组装理解它看起
问题在NSDataWritingFileProtectionComplete中使用NSData.writeToFile:options:error:时如何确保数据被加密?背景研究:启用数据加密根据Apple文档:DataprotectionisavailableonmostiOSdevicesandissubjecttothefollowingrequirements:Thefilesystemontheuser’sdevicemustsupportdataprotection.Thisistruefornewerdevices,butforsomeearlierdevices,the
我有一个应用程序可以通过URL方案从另一个应用程序打开。该URL包含注册token。由于任何应用程序都可以注册与我的应用程序相同的URL架构,我担心“虚假”应用程序可能会进行中间人攻击并捕获注册token。我的想法是在首次打开我的应用程序时检查URL架构是否不会打开另一个应用程序。从安全的角度来看,如果URLscheme第一次打开我的应用程序,它以后会一直打开我的应用程序吗? 最佳答案 使用iOS9通用链接怎么样?UnlikecustomURLschemes,universallinkscan’tbeclaimedbyotherap
如果这对某些人来说可能是常识,我深表歉意,但我仍在学习。我有一个将文件同步到网络服务器的iOS应用程序。一旦用户在设备上登录,他将保持登录状态,除非他注销。目前,每当用户发起服务器请求,例如添加、更新或删除文件时,我只将用户的电子邮件而不是密码发送到服务器,因为用户已经在设备上进行了身份验证。我是否应该在用户每次发出请求时发送用户存储的密码,并让服务器在继续请求之前对其进行身份验证?为什么或为什么不? 最佳答案 您应该发送session标识符,而不是电子邮件地址。session标识符是一个很大的数字(128位就足够了),当用户成功通
我打算尽快(在TestFlight之后)将我的应用发布到AppStore。我有很多ViewController,其中包含print语句。print语句用于测试目的(调试器),用户永远不会看到它们。如果我在发布应用程序后在应用程序中包含或不包含打印语句,会有什么不同吗?打印语句是否会降低场景之间切换的速度,即使是几毫秒?我会因为将它们包含在我的应用中而被拒绝吗?在几个vc中,为了清楚起见,我打印了uid。在应用程序中包含这些打印报表是否存在任何安全风险? 最佳答案 我假设您使用的是Swift,那么print是完全安全的,即使对于App
如何让我的应用程序的UITextfields仅在iOS8中使用Apple键盘?我不想让第三方键盘,期间。我知道这可能是糟糕的用户体验,所以请不要与我讨论这一点:)我知道我可以将securedEntry属性设置为true以强制使用Apple键盘(http://www.imore.com/custom-keyboards-ios-8-explained)。也许iOS8会让我设置此属性而不屏蔽文本? 最佳答案 Apple正是为此提供了一个API。将其放入您的AppDelegate-(BOOL)application:(UIApplicat
我已经阅读了CommonCryptor.h的头文件,只有我能找到kCCAlgorithmAES128但是在SO中有一些答案说明它可以,例如AESEncryptionforanNSStringontheiPhone有人能回答吗? 最佳答案 您始终可以在iPhone上使用OpenSSL,它支持AES256。也就是说,kCCAlgorithmAES128表示block长度为128,而不是key长度。根据thisexamplecode(在thisanswer中找到)您只需为keyLength参数使用kCCKeySizeAES256即可获得对
我想使用iOS代码附带的自签名证书与我的服务器建立SSL连接。这样我就不必担心有人可以访问高级“受信任”证书颁发机构的更复杂的中间人攻击。我在使用我认为是Apple的标准方式时遇到了问题。通过找到的过程生成证书here#CreaterootCA&privatekeyopensslreq-newkeyrsa:4096-sha512-days9999-x509-nodes-outroot.pem.cer#Createacertificatesigningrequestopensslreq-newkeyrsa:4096-sha512-nodes-outssl.csr-keyoutssl.ke
问题我设计的RESTAPI将用于iOS和Android应用程序,并可能在未来用于网络和其他移动客户端。如何将我的整个API限制为仅我希望访问的客户端(应用程序)?我想阻止第3方访问我的API来注册用户,甚至在不通过授权应用程序(移动或Web客户端)的情况下登录。当前想法我可以为每个我想要授权的客户端提供一个key,但是如何防止从我的应用程序源代码中提取此key(如果我的应用程序是网络应用程序,则尤其容易)?此外,如果将来需要更改key(由于妥协),这将很困难,因为我的所有客户端都需要更新,而旧客户端将无法运行。必须有更好的解决方案。我正在使用JWT进行用户身份验证,但我看不出如何将其应