优步数据泄露:如何防止您的应用发生此类事件
已发表: 2017-11-282016 年,Uber 将 5700 万用户和司机信息泄露给了黑客,黑客随后支付了 10 万美元来删除这些数据。
几天前,当他们的首席执行官 Dara Khosrowshahi 发表了一篇文章,揭露了数据泄露事件时,这一事件就出现了。 从那时起,应用程序安全案例成为焦点。
优步并不是第一起数据泄露事件,用户的个人数据曾多次遭到泄露:这一事件让人们对使用询问其信息的移动应用程序持谨慎态度。
鉴于应用程序安全问题,这是显示移动应用程序用户立场的视觉效果 –

看看有多可怕?
但是,您可以防止您的应用程序成为下一个案例研究,以提醒品牌将他们的应用程序安全游戏放在重要位置。
就是这样 -
1.从零开始保护您的应用
应用程序的源代码中存在许多漏洞,但大多数应用程序公司只关注网络部分,同时专注于实施移动应用程序安全最佳实践。 有很多地方可能成为数据泄露的基础——编码错误、代码测试等。
以下是您可以采取的措施来保护您的应用程序从其存在之日起 -
- 通过加密保护您的应用程序代码。 有两种方法可以做到这一点——缩小和混淆,但这还不够。 建议您坚持使用与 API 加密相结合的支持良好的算法。
- 经常对您的代码运行源代码扫描
安全代码的标志是即使在操作系统和设备之间移植后它仍然是安全的。 创建敏捷代码在这方面非常有帮助。
2.从后端保护网络连接

您的应用程序 API 访问的云服务器需要有适当的安全措施,以防止未经授权的访问并保护用户的数据。 API 验证应该到位,以使零敏感信息从客户端传递到应用程序数据库或服务器。
为了使这一步成功,您的后端开发过程必须是健壮的。
以下是保护网络连接的方法
- 创建用于存储文档和数据的加密容器
- 对您的网络进行一系列漏洞评估和渗透测试,以确保数据受到保护。
- 使用 SSL、VPN 和 TLS 加密数据库和连接以增加安全性
- 应用联合——该措施将资源分布在服务器之间,使它们不在一个地方,同时将关键资源与用户分开。
3.有适当的身份验证、识别和授权流程
以下是使您的应用程序被识别、验证和授权的方法
- 确保您的应用程序使用的 API 只是运行所需的 API,并且只允许访问焦点所在的部分,而不是所有应用程序功能。
- 当您的应用程序处于开发阶段时,您可以使用并确保遵循许多工具和协议。 他们来了 -
- JSON Web Token – 用于加密数据交换的轻量级工具,其简单的实现使其成为移动应用程序的理想选择。
- OpenID Connect – 这是一种协议,允许用户在 ID 令牌的帮助下跨不同域重复使用他们的凭据,以节省他们每次注册和注册相同信息的时间。
- OAuth2 – 该协议用于通过一次性用户特定令牌管理安全连接。 在授权服务器中安装框架后,您可以通过收集诸如 2 因素 SMS 问题之类的凭据,在最终用户和客户端之间授予您的用户权限。
4.做一套全面的测试
与 Web 应用程序不同,大多数移动应用程序数据都保存在本地,并且由于数据位于带宽、性能和质量各不相同的设备上,因此被黑客入侵的风险要大得多。
除了设备的不稳定因素外,还有一些应用程序倾向于在用户不知情的情况下发布数据,例如他们的性别、年龄、设备使用情况等。

确保客户数据在应用程序上安全的方法 –
- 借助文件级加密,您可以逐个文件保护数据。 这是加密静态数据的方法之一,以便在拦截时不被读取。
- Appcelator平台等工具可确保本地存储的移动数据安全。
密钥管理应该是您的首要任务。 强大算法的基础是其同样强大的证书和密钥。
5.计划的 API 安全策略
由于移动开发与 API 紧密结合,使应用程序安全的主要部分取决于使其 API 安全。 API 在应用程序、云和多个用户之间传输数据。 需要识别和授权所有相关方才能查看和使用数据。 API 是功能、内容和数据的基石,因此确保其安全可能需要很长的路要走。

您需要处理 API 中的三个阶段,即识别、身份验证和授权。
让我们看看下面所有三个的元素 -
鉴别
过程的第一部分,可以通过实现 API 密钥来防止识别黑客。 这些密钥是随机的、唯一的标识符,无需密码。
虽然您可以使用 API 密钥保护何时看到数据,但您无法确定应该看到它的人看到了它。
验证
这是保证信息被本来打算查看它的人看到的过程。 在此阶段,您设置用户名和密码以确保系统获得额外的安全级别。
授权
这一步回答了这个问题——可以用 API 做什么。 保护此过程的步骤包括 2 因素授权、令牌和一次性密码。
6.测试应用
无论您的应用程序是混合应用程序、本机应用程序还是 Web 应用程序,都应不仅从可用性和功能方面进行测试,还应从安全性方面对其进行测试。 您必须遵循许多步骤来确保您的应用程序质量有保证,以确保其安全。
以下是确保您的应用程序经过安全测试的方法 -
- 渗透测试——这意味着探测网络和系统以发现弱点。
- 使用模拟器测试应用程序在模拟环境中的性能。
- 详细测试授权和认证、会话管理和数据安全问题。
因此,这些是您可以在应用程序开发过程中采用的 6 种方法,以确保您的方法不会成为众人瞩目的焦点。
确保您在有时间的同时及时融入。
