[Swift通天遁地]7、數據與安全-(16)檢測Apple設備是否越獄

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公衆號:山青詠芝(shanqingyongzhi)
➤博客園地址:山青詠芝(https://www.cnblogs.com/strengthen/
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:http://www.javashuo.com/article/p-pjagaual-mb.html 
➤若是連接不是山青詠芝的博客園地址,則多是爬取做者的文章。
➤原文已修改更新!強烈建議點擊原文地址閱讀!支持做者!支持原創!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★html

目錄:[Swift]通天遁地Swiftgit

本文將演示如何判斷程序是否運行在越獄設備上。github

假如產品使用了內購功能,當運行在越獄設備時,可採起一些防護和安全提示措施。swift

在項目導航區,打開視圖控制器的代碼文件【ViewController.swift】數組

越獄設備因爲沒有沙盒做爲保護,黑客能夠對系統進行任意的修改,安全

蘋果返回的內購付款憑證有多是虛假的,因此須要進行越獄設備的檢測。微信

 1 import UIKit
 2 
 3 class ViewController: UIViewController {
 4 
 5     override func viewDidLoad() {
 6         super.viewDidLoad()
 7         // Do any additional setup after loading the view, typically from a nib.
 8         //在視圖加載完成的方法中,經過一個判斷語句,
 9         //判斷設備是否越獄。        
10         if isJailBroken()
11         {
12             //當設備處於越獄狀態時,在控制檯輸出相應的提示語句。
13             print("Your device has been jailbroken, please pay attention to the security of payment.")
14         }
15         else
16         {
17             print("Your device has not been jailbroken.")
18         }
19     }
20     
21     //添加一個方法,用來檢測設備是否越獄。
22     //並在方法的末尾,返回一個布爾結果。
23     func isJailBroken() -> Bool
24     {
25         //越獄設備一般會自動在應用程序目錄下,
26         //安裝一些特殊的軟件。
27         //能夠判斷設備中是否包含這些程序,
28         //來判斷該設備是否處於越獄狀態。
29         let apps = ["/Applications/Cydia.app",
30                     "/Applications/limera1n.app",
31                     "/Applications/greenpois0n.app",
32                     "/Applications/blackra1n.app",
33                     "/Applications/blacksn0w.app",
34                     "/Applications/redsn0w.app",
35                     "/Applications/Absinthe.app"]
36         
37         //添加一個循環語句,用來遍歷應用程序的數組。
38         for app in apps
39         {
40             //經過文件管理器,判斷在指定的目錄下,
41             //是否存在對應的應用程序。            
42             if(FileManager.default.fileExists(atPath: app))
43             {
44                 //若是存在的話,就表示當前設備屬於越獄設備
45                 return true
46             }
47         }        
48         //若是找不到這些應用程序,則表示當前設備處於非越獄設備。
49         return false
50     }
51     
52     override func didReceiveMemoryWarning() {
53         super.didReceiveMemoryWarning()
54         // Dispose of any resources that can be recreated.
55     }
56 }
相關文章
相關標籤/搜索