移动 APP 安全规范
转自:GitHub - nowsecure/secure-mobile-development
移动安全开发指南我们NowSecure花了很多时间攻击移动应用 - 黑客,破解加密,查找缺陷,渗透测试,并寻找存储不安全的敏感数据。 我们这么做是为了帮助开发人员提高应用程序的安全性。 本文件代表了我们与客户和合作伙伴共享的一些知识。 我们致力于推动全球移动应用安全。
使用本指南本指南提供了在开发过程中使用的具体建议。 本报告中对攻击和安全建议的描述并不全面或完美,但您将获得实用的建议,您可以使用它们来提高应用程序的安全性。
我们定期修订我们的最佳做法,并欢迎您的贡献。 我们同时会定期从被接受到主存储库中更新本指南并发布在这里。
要了解攻击者可能在您的应用程序上使用的所有攻击方法,请阅读我们的移动安全入门.
目录
移动安全入门
编码实践
2.1 增加代码复杂性和使用混淆
2.2 避免简单逻辑
2.3 测试第三方库
2.4 实施防篡改技术
2.5 在内存中安全的存储敏感数据
2.6 安全的删除数据
2.7 避免敏感数据的查询字符串
敏感数据处理
3.1 实现安全数据存储
3. ...
移动 APP 研发流程
移动 APP 研发流程主要考虑需求发范围、人力和时间成本、交付质量,以及整体的进度、风险、疑难问题等因素。不同的团队和项目会有较大不同,可以根据产品的业务需求目标动态调整。
一、职能及分工示例1.1 职能及分工示例 1 - 移动互联网研发流程及角色分工
1.2 职能及分工示例 2 - 产品经理与项目经理对比
二、开发流程示例2.1 开发流程示例 1 - 基于工作衔接的互联网研发流程图
2.2 开发流程示例 2 - 基于敏捷开发示例
参考文档
《移动App测试实战顶级互联网企业软件测试》
《也许是最有效的项目敏捷开发流程》
移动 APP 版本发布
《移动 APP 版本发布与更新介绍》
《Android 应用市场发布》
《iOS 应用市场发布》
移动 APP 测试流程
移动 APP 测试一般采用的是黑盒测试,主要测试任务包括 UI 测试和功能测试,必要时也会进行自动化测试以及性能测试,还包括专项测试,例如内存,流量以及耗电量测试等。
一、 APP 测试流程1.1 一般流程
1.2 测试周期测试周期可按项目的开发周期来确定测试时间,通常为开发工时的一半(比如开发工时30个工作日,则测试需要15个工作日)。具体需要根据项目情况以及版本质量可适当缩短或延长测试时间。
1.3 测试资源测试任务开始前,检查各项测试资源。通常包括:
1234567- 产品功能需求文档;- 产品原型图;- 产品效果图;- 行为统计分析定义文档;- 测试设备(iOS、Android 各版本系统及硬件设备等);- 开发人员提测申请文档;- 其他。
1.4 测试用例1.4.1 什么是测试用例测试用例是为发现软件中的问题而编写的包含测试输入、执行条件和预期结果的一组文档。 用于验证软件产品是否满足需求。
测试用例一般结构为:用例编号、模块、测试标题、先决条件、操作步骤、预期结果、实际结果
1.4.2 测试用例的作用1234561. 理清思路,避免漏测和重复测试;2. 提高测试效率; ...
移动 APP 开发模式——Android
官方文档
《Android 官方文档》
学习资源
《GitHub - Awesome Android》
《GitHub - Awesome Android UI》
《Android 开发技能图谱》
《Java 编码规范》
《Kotlin 编码规范》
工具素材
GitHub - Genymobile/scrcpy:一种支持 USB 或 TCP/IP 方式在 PC 端(Windows、Mac、Linux)显示和控制 Android 设备的开源工具
其它
移动 APP 研发交付——持续交付
本文内容为极客时间《持续交付 36 讲》学习笔记
极客时间《持续交付 36 讲》课程作者王潇俊(携程系统研发部总监)
一、交付流水线后端持续交付流水线包括了:代码管理、环境管理、集成和编译管理、测试管理,以及发布管理这五个核心过程。而与之相比,移动 App 的运行形势决定了其在环境管理方面没有特别多的要求。
二、APP 交付特点移动端的 APP 交付特点包括:iOS/Android 两套环境、分支管理复杂、编译速度慢、应用市场审核速度慢、热修复技术限制、组件化的依赖管理问题等。
三、依赖管理Android - Gradle
iOS - CocoaPods
H5、Hybrid - NPM
四、项目信息管理版本信息管理
功能信息管理
五、构建管理通过代码变更,触发自动的持续集成。集成过程基本遵循:拉取代码、静态检查、编译构建、自动化测试,以及打包分发的标准过程。
移动 App 和后端服务的持续交付体系,在构建管理上的不同点,主要体现在以下三个方面:
你需要准备 Android 和 iOS 两套构建环境,而且 iOS 的构建环境还需要一套独立的管理方案。因为,iOS 的构 ...
Android 开发技能图谱
转自:Github - feelschaotic/AndroidKnowledgeSystem
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 ...
移动 APP 运维监控
一、移动 APP 运维监控1.1 什么是移动 APP 运维监控移动 APP 运维监控主要是监控移动应用、前端页面、小程序的运行情况,属于移动端稳定性保障范畴,包括三部分内容:移动日志数据的上传监测、移动异常的实时告警和动态配置开关的下发控制。
通过移动日志数据的上传监测可以帮助分析生产环境中各类隐患问题,协助排查在开发测试阶段难以识别的新问题;
通过移动异常的实时告警可以识别移动 APP 的异常情况,包括开发过程中异常告警(针对网络不可用及主流程异常)和生产环境中的异常告警;
通过动态配置开关的下发控制可以根据生产环境的不同情况进行不同针对措施的及时调整,帮助对生产环境的重大异常进行及时的降级止损。
监控内容包括:应用崩溃、ANR、JS 异常、API 异常、资源异常、启动性能、页面性能等。
1.2 与移动 APP 数据分析的区别移动 APP 运维监控与移动 APP 数据分析的主要区别在于关注的数据维度和使用的人群不同。
移动 APP 运维监控所关注的更多的是 APP 性能相关数据,关注人主要是研发人员,帮助排查和修复开发过程和线上 APP 运行性能及异常问题;
移动 APP 数据分 ...
移动 APP 开发模式
目前移动 APP 主要分为三种开发模式:Native APP、Web APP 和 Hybrid APP。包含以下技术栈:
一、Native APP1.1 概述Native APP 也称为原生开发,主要指直接使用相应平台特有的开发工具和语言进行开发。
主流的移动平台主要是 iOS 和 Android。
平台
iOS
Android
开发工具
Xcode
Android Studio
开发语言
Objective-C/Swift
Java/Kotlin
官方资源
developer.apple.com
developer.android.google.cn
三方资源
Awesome iOS
Awesome Android UI、Awesome Android
系统架构
iOS 基于 UNIX 系统,系统架构采用了分层的架构,共分为四层,从高到低分别是可触摸层(Cocoa Touch layer)、媒体层(Media layer)、核心服务层(Core Services layer)、核心操作系统层(Core OS layer)
Android ...
移动 APP 研发交付——研发需求
《移动 APP 需求类型》
《移动 APP 需求文档》