专栏名称: 51CTO
51CTO官方公众号——聚焦最新最前沿最有料的IT技术资讯、IT行业精华内容、产品交流心得。本订阅号为大家提供各种技术干货,还会不定期的举办有奖活动,敬请关注。
目录
相关文章推荐
新浪科技  ·  【#卢伟冰称小米手机要突破6000元#,#卢 ... ·  21 小时前  
DeepTech深科技  ·  加州初创公司打造量子光芯片,采用格芯45nm ... ·  昨天  
新浪科技  ·  【消息称#DeepSeekR2有望5月前发布 ... ·  2 天前  
51好读  ›  专栏  ›  51CTO

2017年移动开发环境是趋向转型还是注重安全?都要!

51CTO  · 公众号  · 科技媒体  · 2017-04-14 14:42

正文

最近被炒的很热的“iOS烂大街”风波还未平息,Android安全话题又被推向了风口浪尖,小程序又借势在中国掀起一篇惊涛骇浪,前途未卜。移动领域在近期动作频繁,究竟是市场导向还是技术改革导致?这个话题我们无法一笔定论,因为不同角度有不同的看法,不同人也有不同观点。


简单回顾一下整个移动开发领域的发展过程,iOS出现于2007年,Android诞生于2008年,而通常在国内的开发技术会晚3年左右,所以,国内的移动技术发展基本是从2010、2011年左右开始,在2012,2013两个系统达到热潮,2015年慢慢回落。


而面向企业的移动业务一般在2012年左右得到开辟,2013年左右已经成型了,2014之后已经很大程度上停在了拓展和维护上,基本很少看到产品的创新。在2013年创业潮其实也带来了一些新的移动产品,不过令人遗憾的是从2015年之后,只有一小部分的明星创业产品得到了收益,很多创业公司都相继倒闭。


如今,在移动APP需求上也仅剩下中小企业当中的一些政府项目,以及传统行业的需求,再者就是目前比较流行的IOT移动端开发。对于个人开发者和初创公司,客观从2012年左右移动开发门槛是最低的,不过学习成本和推广成本相对增加。相反,在2014年以后,互联网行业移动项目持续增长,门槛相对比以往提高了,但是学习成本相对降低,有不同的途径自我学习,或者选择第三方去完成主要开发工作。


饱和的移动应用市场

在移动领域,终究还是理性战胜了感性。对于目前来说,移动APP的推广成本远远大于开发成本,也许是因为前车之鉴,开发者在开发APP上线时,在运营、推广成本的压力上,基本都是知难而退。而对于有需求的企业,类似教育、直播、IOT这种业务驱动型的应用反而较为热门,据APICloud CTO邹达介绍,每天在APICloud上的需求就有几十个,整个定制平台每个月差不多有二十多个项目在实施。而对于个人、初创企业、或者凭着idea等方式开发移动APP的用户越来越少,因为没有业务的结合、完全凭一个idea,没有任何的经验或者资源,基本上已经没有存在。


物联网在2017年重围主要趋势


但是这两年由于小程序、流应用、微应用的爆发又重新点燃了开发者的热情,不但解决了技术学习成本的问题,在运营推广上,又有了全新的模式。这似乎对于开发者来说,确实有很强的诱惑力。无论是唱好唱衰,这些开发模式最终还是要结合业务,对于仅有idea的开发者来说,没有任何的基因去建立一个服务用户的纽带,第二是对于初创企业,在移动APP的开发需求、业务结合、客户对接上存在很多缺口,很难一步到位。


邹达也表达,APICloud从去年6月份开发到现在,没有任何一个客户想做小程序应用。从每个月差不多的20多个项目中,包括他们评估的小程序需求比例还不到1%。这也是由于需要紧密结合应用场景,主要的优势在业务之上,并非用来保存APP内容或者功能的体现。



模块定制为移动APP开启新模式

从2016年开始,一些前端框架已经趋于稳定,我们可以看到诸如 React 这样的框架在一些大型项目中的采用。除了这些常规的移动 Web 应用,在去年九月底微信小程序的火热,通过激活线下流量,连接线下场景,开启了移动 Web 的一扇新门;Google 推出的 PWA 也让越来越多的开发者看到了转型移动 Web 的更多可能性。从技术的角度,在移动上前端技术代替原生的趋势不可避免,包括H5、跨平台、JavaScript都会慢慢取代整个开发模式的转型。


但是从产品的角度,整个APP的形态、商业模式却很难撼动。恰好在2016年,资本寒冬席卷了整个互联网市场,创业者和企业如何从产品和商业模式的角度如何用合理的成本,在更短的周期内去验证创新的想法变得更加重要。“省”字当头,“省时间”更是重中之重。APICloud邹达认为移动应用市场从自主研发到App定制服务平台的转型正是充分发挥快速开发的优势,帮助这些创新从想法变成现实。


“App定制平台”的多重优势还解决了很多传统App定制服务的痼疾,通过“沟通不畅”“实施过程不透明”“失败风险高”“开发周期长导致无法挽回”“实施方能力弱”等等几个方面解决了中小企业和初创企业开发需求的问题:

  1. 标准化技术: 采用标准化的开发技术,实现高效率、低投入的开发模式。

  2. 官方签约保上线: 严格把控项目质量和开发周期,承诺每一个项目顺利上线至苹果和各大安卓应用市场。

  3. 专业的管理体系: 定制服务将App开发分为需求预评估、产品原型设计、UI设计、App端开发、服务端开发、接口联调、测试及验收7个阶段。

  4. 完善的沟通方式: 企业客户与项目负责人通过视频会议的方式进行交流,便捷、高效、可视化。

  5. 严格的验收体系: 通过开发团队严格按照标准化验收体系,将前后端源代码、需求文档、设计文档、操作说明、测试报告等十几项交付物完整递交给企业客户,方便项目的更新迭代。


安全隐患日益凸显

尽管APP定制服务在整个过程中的安全得以保证,但是网络速度正在变得越来越快,基于HTML5开发的跨平台应用也越来越多,背后隐藏的代码盗取问题也越来越严重,安全在今年的移动开发领域一直拥有极高热度。

根据 Gartner 的预测,75% 的移动 app 甚至没有通过基本的安全测试


而苹果与FBI之间的激烈冲突也再次强调了保护用户隐私的重要意义。大型企业开始将重点转向提升核心组成部分的安全水平,苹果公司亦在WWDC大会上宣称其将在硬件层面确保设备拥有完整的安全防护机制。另外,加密机制在这一年中同样受到重视。


而目前很多企业所使用的代码保护解决方案中,对于网页代码保护的方式更是治标不治本,无法从根本上去实现真正的代码加密。


1、JS、CSS代码压缩

通过互联网上提供的CSS、JS压缩工具,只起到了减少文件体积、提高加载速度,能够提升程序的执行性能,但是根本做不到加密,开发者完全可以利用很多方式进行还原。


2、混淆HTML、JavaScript、CSS代码实现保护

这是最通常使用的方法,有很多代码混淆工具,如Packer、Javascript Compressor、JSObfuscator等,帮助开发者保护代码,然而代码混淆后会降低程序的执行性能。同时也不乏一些代码格式化工具的存在,如JSBeauty、VS的Javascript编辑器等,用工具将混淆的代码重新格式化后,代码全部恢复为明文,无法做到代码版权保护。


3、仅对HTML文件加密,而对JavaScript和CSS文件不加密

仅对App中的HTML文件进行加解密处理是比较容易实现的,HTML文件可以经过加密后保存在App安装包中,而应用引擎在将HTML文件交给浏览器引擎解析之前可以先对加密的HTML文件进行解密,然后再将解密好的HTML文件交给浏览器解释执行,而在整个浏览器执行过程中,对JavaScript和CSS文件的解密处理时机还是比较难控制的。但是在一个实际App项目中,大量的功能实现都是放在JavaScript文件中的,所以,这种局部加密的方式还是存在较大的局限性。


4、原生应用的代码加固和加密厂商

由于Android应用使用Java语言开发,Java语言存在可以反编译源码的问题,所以行业中针对apk出现了加固、加壳产业,很多厂商可以提供加固服务,比如360、梆梆安全等加固产品。然而应用加固通常只能对原生代码进行加密加固保护,不能对HTML、JavaScript、CSS等网页代码进行加密保护。


邹达认为,无论应用如何进行加密,都很难保证绝对的安全,但是起码在自己的平台上做APP,起码要把我们能想到的都应该有相应的机制。

  • 第一,代码安全 ,因为目前基本上大部分的移动应用都基于H5开发;

  • 第二,数据安全 ,保护应用所有数据的稳定性;

  • 第三,功能安全 ,针对API的调用和控制,包括大企业API调用的限制。


而对于移动安全问题,苹果在去年也通过了禁止JSPatch热修复框架,其原理是通过JS脚本调用和替换任意OC方案,达到bug修复的目的。也许是为了提升安全和可控性问题,采用JSPatch热修复框架后,这种安全和可控性正在被挑战。


摘掉主流移动开发安全的帽子

通过代码加密功能可以从HTML源头开始,邹达给出了基于RC4加密算法提出了一套“全包”对称加密解决方案,可以在云编译的时候对安装包中的HTML、CSS、JS代码进行加密处理,从HTML5移动应用开发的源头开始,很大程度的保护源代码的知识产权。

  1. 一键加密,运行时解密: 开发者只需要在APICloud上编译时选择代码加密,云服务器在编译App安装包时就会将该App的HTML、JavaScript、CSS代码自动加密,同时该App在运行过程中实时解密,App退出即焚,不留下解密痕迹;

  2. 零修改,零影响: APICloud的加密方式不改变代码量大小,不影响运行效率,针对代码的加密方案不会修改开发者的任何代码,加密后的代码不会比加密前多出一个字节,同时,端底层嵌入了特殊的处理方案,保证代码加密前后,App的运行效率、使用体验不受影响;

  3. 自动,智能,方便: 开发者在APICloud平台开发App的过程中,无需针对代码的保护做特殊的处理,按照正常的开发流程进行即可;







请到「今天看啥」查看全文