Plugins
iOS Security
@nativescript/ios-security β
Contents β
Intro β
π IOSSecuritySuite for NativeScript.
π iOS Security Suite is an advanced and easy-to-use platform security & anti-tampering library. If you are developing for iOS and you want to protect your app according to the OWASP MASVS standard, chapter v8, then this library could save you a lot of time. π What ISS detects:
- Jailbreak (even the iOS 11+ with brand new indicators! π₯)
- Attached debugger π¨π»βπ
- If an app was run in an emulator π½
- Common reverse engineering tools running on the device π
Installation β
To install the plugin, run the following command in your app's root folder:
npm install @nativescript/ios-security
Prerequisites β
Specify the URLs to be queried β
In the jailbreak detection module, there is a check that uses the canOpenURL(_π method and it requires specifying the URLs that will be queried.
Specify those URLs in the App_Resources/iOS/Info.plist
file as follows:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>cydia</string>
<string>undecimus</string>
<string>sileo</string>
<string>zbra</string>
<string>filza</string>
<string>activator</string>
</array>
Use @nativescript/ios-security β
The following sections describe how to use @nativescript/ios-security
.
Detect jailbreaking β
For a simple check of whether the device is jailbroken, use the amIJailbroken()
method.
constisJailBroken:boolean= IOSSecurity.amIJailbroken()
if (isJailBroken) {
console.log('This device is jailbroken')
} else {
console.log('This device is not jailbroken')
}
Detect bebugger attachment β
To detect if a debugger is attached to the app, use the amIDebugged()
method.
constamIDebugged:boolean= IOSSecurity.amIDebugged()
Prevent debugger attachment β
To prevent the debugger from being attached to the app, call the denyDebugger()
method.
IOSSecurity.denyDebugger()
Emulator detection β
To detect if the app is being run on an emulator, call the amIRunInEmulator()
method.
construnInEmulator:boolean= IOSSecurity.amIRunInEmulator()
Detect the use of reverse engineering tools β
To detect if a common reverse engineering tool is being used on the app, call the amIReverseEngineered()
method.
constamIReverseEngineered:boolean= IOSSecurity.amIReverseEngineered()
System proxy detection β
To detect if the user is using a proxy, call the amIProxied()
method.
constamIProxied:boolean= IOSSecurity.amIProxied()
Runtime Hooks Detection β
To detect if a hook is placed in the application's code, call the amIRuntimeHookedWithDyldWhiteListDetectionClassSelectorIsClassMethod()
method.
let amIRuntimeHooked:boolean= IOSSecurity.amIRuntimeHookedWithDyldWhiteListDetectionClassSelectorIsClassMethod(dyldWhiteList: NSArray<string>| string[], detectionClass: typeof NSObject, selector: string, isClassMethod: boolean)
App tampering detection β
To detect if an app has been tampered with, call the amITampered()
method.
let amITampered:NSArray<any> = IOSSecurity.amITampered(checks: NSArray<any>| any[])
License β
Apache License Version 2.0
- Previous
- Ionic Portals
- Next
- IQ Keyboard Manager
Contributors
Last updated: