[TIMOB-24300] iOS: Add ability to disallow custom keyboards (Data Leakage) via tiapp.xml
GitHub Issue | n/a |
---|---|
Type | Story |
Priority | High |
Status | Closed |
Resolution | Fixed |
Resolution Date | 2017-01-28T09:46:33.000+0000 |
Affected Version/s | n/a |
Fix Version/s | Release 6.1.0 |
Components | iOS |
Labels | n/a |
Reporter | Shuo Liang |
Assignee | Hans Knöchel |
Created | 2017-01-12T00:46:56.000+0000 |
Updated | 2017-01-28T09:46:38.000+0000 |
Description
A security scan found a possible Information Leakage issue associated with this:
Apple introduces several new IPC (Inter Process Communication)/Extensions since the inception of iOS 8. One of the Extension Points is the ability for users to install "Custom Keyboards." Custom Keyboards can operate in 2 Open Access modes (On and Off).
They observed that application allows custom keyboard. The use of custom keyboards can have security implications, if the user allows the custom keyboard to have internet connectivity. If the custom keyboard can connect to the internet, it can send any keystroke to the custom keyboard maker's server, leading to potential data leakage.
```
Can you ensure if is there a way we can ensure this warning won't show up when building the app?
*PR*: https://github.com/appcelerator/titanium_mobile/pull/8748 *To test*: 1. Download one of the custom-keyboard apps and install the custom keyboard 2. Create a new Titanium project 3. Paste the following content into the index.js / app.js file:
3. Add
<property name="allow-custom-keyboards" type="bool">false</property>
4. Run the Titanium app *Expected behavior*: The custom keyboard does not show up. Toggle the property to see different behaviors. Updated guide: https://wiki.appcelerator.org/display/guides2/tiapp.xml+and+timodule.xml+Reference#tiapp.xmlandtimodule.xmlReference-allow-custom-keyboards[~sliang] This should fit the customers requirements.
FR passed, using: MacOS 10.12 (16A323) Studio 4.8.1.201612050850 Ti SDK 6.1.0 Appc NPM 4.2.8 Appc CLI 6.1.0 Alloy 1.9.5 Xcode 8.2 (8C38) Custom keyboards are not allowed when setting the allow-custom-keyboards property to false. They are allowed when the property is true. Tested using the provided test case and modified versions of it
Verified in SDK 6.1.0.v20170126150653