“Information security is as simple as ABC: always be careful.”
—Anonymous
Nowadays, mobile applications have become our daily bread. They are essential tools for developing our digital lives. We do everything through apps. We manage our bank accounts, listen to music, inform ourselves, read the news, share on social networks, and so on.
We know that we use each application for our convenience, but every time we install a new one, are we aware of the permissions we will grant it? That is, do we know the security level of any application?
I imagine everyone’s answer is a resounding no. And what we do know is that comfort and safety are antagonistic: the higher one is, the lower the other, and vice versa.
The concept of privacy by default means that applications, software, or systems, from the moment they are created, should take measures to protect a user’s information (i.e. they should provide a data security facility).
For this, there are already methodologies that review the application code itself and provide guidelines for security, including data encryption, SSL-TLS protocols, vulnerability tests, audits, authentication mechanisms, storage, etc.
Certain applications have recently improved their features regarding the security they offer to users, such as PayPal, WhatsApp, and of course all banking applications. If we pay attention to any of them, we can see that they have a function to protect confidential information in the background.
But how do they do it?
The answer is super simple, so let’s see how we can do it in our Xamarin.Forms applications.
To protect our confidential information on Apple devices, we should go to the AppDelegate.cs file and enter the following methods:
Refer to the following code example.
using UIKit; using Foundation; using System.Linq; namespace SensitiveData.iOS { [Register("AppDelegate")] public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate { public override void OnResignActivation(UIApplication application) { var blurEffect = UIBlurEffect.FromStyle(UIBlurEffectStyle.ExtraDark); var blurEffectView = new UIVisualEffectView(blurEffect) { Frame = application.KeyWindow.Subviews.First().Bounds, AutoresizingMask = UIViewAutoresizing.FlexibleDimensions, Tag = 12 }; application.KeyWindow.Subviews.Last().AddSubview(blurEffectView); base.OnResignActivation(application); } public override void OnActivated(UIApplication uiApplication) { var sub = uiApplication.KeyWindow?.Subviews.Last(); if (sub == null) return; foreach (var vv in sub.Subviews) { if (vv.Tag == 12) vv.RemoveFromSuperview(); } base.OnActivated(uiApplication); } public override bool FinishedLaunching(UIApplication app, NSDictionary options) { global::Xamarin.Forms.Forms.Init(); LoadApplication(new App()); return base.FinishedLaunching(app, options); } } }
Now for Android, we need to go to the MainActivity.cs file and do practically the same thing we did for iOS but in the OnPause and OnResume methods, like in the following code:
protected override void OnResume() { Window.ClearFlags(WindowManagerFlags.Secure); base.OnResume(); } protected override void OnPause() { Window.SetFlags(WindowManagerFlags.Secure, WindowManagerFlags.Secure); base.OnPause(); }
GitHub Reference: You can download the full code from GitHub.
For developers, application user’s data can be protected by following the steps provided in this blog post.
For the mobile application users, it is clear that if they want to protect their privacy and make their data safe (or less exposed), they must, in addition to reviewing the permissions of each application one by one, sacrifice comfort a little and perform a couple (or a few) more clicks instead of leaving all the settings as the developers of those apps would like them to be: 100% accessible.
So, use the tips given in this post and safeguard your sensitive data from unauthorized persons.
Happy coding!
Syncfusion offers over 150 UI controls for Xamarin, from basic editors to powerful, advanced controls like the DataGrid, Charts, ListView, and RTE controls. Use them to build charming applications!
If you want to send us feedback, please use the comments section below. You can also reach us through our support forums, Direct-Trac, or feedback portal. We are always happy to assist you!
If you like this post, we think you will also like the following: