您当前所在的位置:首页 / 新闻中心 / 行业资讯
新闻中心
行业资讯
常见问题
知识百科
产品技术

移动APP开发指南 - 第一部分

发表于:2018-07-30



完整性,性能和安全性是用户在使用任何智能手机APP时所寻求的关键参数。为了创建功能强大的执行移动解决方案,除了克服介质的限制之外,满足所有这些期望变得很重要。设计在吸引,鼓励和探索平台方面发挥着至关重要的作用,但对于保留用户而言,鉴于网络威胁日益增加,安全性成为当务之急。

移动APP开发指南

在开发任何解决方案时存在许多安全问题,例如:移动APP是否受到各种攻击的保护?数据安全吗?是否存在数据库污染的可能性?攻击者是否有可能未经授权访问受限制的站点部分?在我们对所编写的代码保持谨慎之前,这些威胁可能会以所有概率为准。让我们看一下在设计和开发移动解决方案以避免此类风险时必须注意的一些关键问题。

数据存储

制定移动解决方案需要在许多方面采取深思熟虑的方法。通常,这些设备中的数据存储必须保持在最低限度。但是,必须仔细选择需要保存的任何数据并进行适当保护。以下是金和盛提供的一套快速移动APP开发指南

对于iOS APP:

  • 最好避免在电话文件系统上存储凭据,并且必须最小化会话超时。如果需要缓存信息,建议使用标准的iOS加密库。

  • 在仪器越狱之前,使用Apple钥匙串API来保存少量数据是安全的。如此,钥匙串可以轻松阅读。除此之外,还存在暴力威胁。

  • 始终确保为企业管理的移动电话强制使用强度至少为4个字符且性质为字母数字的强PIN码。

  • Apple的文件保护机制可用于一般类型的消费者级数据。不要依赖硬编码加密或解密密钥来存储未加密的数据库文件。

  • 对于完全依赖硬编码加密或解密密钥的敏感信息的存储必须避免。

  • 建议在任何默认的操作系统层之外提供额外的加密层。

对于Android APP:

  • 始终考虑提供超出默认加密机制的更多加密层。

  • 在保存敏感信息的同时,不要总是依赖硬编码加密或解密密钥。

  • 使用'javax.crypto'库可以让您保护SD卡存储。更简单的方法是使用主密码和AES 128加密纯文本数据。

  • 为了进一步平衡APP安全性,请确保共享首选项属性不是MODE_WORLD_READABLE,直到明确要求APP之间的数据共享为止。

服务器端控制

这个元素起着决定性的作用。当用户操作平台时,强大的服务器端控制可确保平台满足所需目的,从长远来看,安全可靠。为了确保服务器端控件足够强大,必须在开发阶段采用安全配置实践。这种做法可包括:

  • 验证来自所有不受信任数据源的输入。

  • 保持简单的设计。对于复杂的设计,错误的可能性会随之增加,同样需要努力实现实施安全措施。

  • 严格执行QA。采用良好的技术来保证代码开发有助于识别和挑战威胁和漏洞。实施源代码审计,模糊测试和渗透测试方法可以实现安全的系统和解决方案。

  • 始终APP安全编码标准。

  • 创建一个多策略并始终以有计划的方式管理风险,以便在一个层变得不充分的情况下,第二个层总是存在以保护系统。

  • 根据权限而不是排除提供访问权限。

  • 设计和开发安全策略解决方案。

运输层保护

为了实现万无一失的系统和功能,开发人员必须以各种可能的方式屏蔽来自所有方向的平台威胁。一种这样的措施是配备强大的传输层保护。以下是一些防止它的做法:

  • 必须将SSL / TLS APP于将用于将敏感信息传输到后端API的所有传输通道。

  • APP强大的标准密码套件,

  • 始终要求SSL链验证。

  • 如果移动APP检测到无效证书,请通知用户。

  • 只有在使用受信任证书验证端点服务器的身份后,才能建立安全连接。

  • 避免混合SSL会话。这暴露了暴露会话ID的风险。

在金和盛,我们认为安全性占据主导地位的原则是生产力不得以安全为代价。上面提到的一组元素用于审查开发人员的移动平台的安全性。在即将推出的博客中,我们将采用更多方式确保您的APP和解决方案万无一失。