移动应用安全开发要求(1,源码安全)

随着移动互联网的发展,智能移动终端广泛应用,但免费开源平台的特性也带来安全隐患。89%的热门应用存在仿冒,98%的Top10应用有漏洞。本文聚焦Android应用开发的安全要求,包括程序保护、基本要求和增强要求,涉及混淆、加密、签名、反调试、资源文件保护、代码安全等方面,旨在对抗恶意行为和保护用户数据安全。

 

 近十年,移动互联网的飞速发展,智能移动终端在人们学习、工作和生活中的普及率越来越高,手机终端的广大用户群体的良好体验正吸引着越来越多的开发及应用者参与到手机应用程序的开发和使用中来,但是部分免费开源的平台特性不仅给予了开发者更广阔的开发空间,也给使用者增加了许多安全隐患,即使有基于自主平台上开发的移动应用,也会遭到黑客攻击,存在一定的安全隐患。

    相关数据显示,89%的热门应用存在仿冒,18个行业的Top10应用中98%的应用都存在漏洞。这些漏洞一旦被利用,将会给开发者和用户带来很大的影响。

图片

    在本文中,我们探讨Android应用程序开发过程中都有哪些安全开发要求。

 


程序保护


    通过混淆、加密、签名、加壳、动态加载等技术为移动应用进行全面的安全加固,对抗代码注入、篡改、反编译、逆向工程等恶意行为,具备反篡改/盗版/二次打包能力。

    基本要求

  • Dex加固,可对编译后的Dex进行加壳、类加载、类抽取、函数Native转换、指令VMP选择加固处理。

  • SO加固,可对导出函数加密,对SO文件中的字符串进行混淆或加密,对编译后的SO文件中代码段加密。

  • 反调试,防止进程/线程附加,如果检测到被保护APK被附加则程序退出;抵抗进程注入,如果检测到被保护APK的内存空间非法访问则程序退出;对市面上常用的调试器进行检测,如果检测到调试器启

1. 背景 4 2. 编码安全 4 2.1. 输入验证 4 2.1.1. 概述 5 2.1.2. 白名单 5 2.1.3. 黑名单 5 2.1.4. 规范化 5 2.1.5. 净化 5 2.1.6. 合法性校验 6 2.1.7. 防范SQL注入 6 2.1.8. 文件校验 6 2.1.9. 访问控制 6 2.2. 输出验证 6 2.2.1. 概述 6 2.2.2. 编码场景 6 2.2.3. 净化场景 7 2.3. SQL注入 7 2.3.1. 概述 7 2.3.2. 参数化处理 7 2.3.3. 最小化授权 7 2.3.4. 敏感数据密 7 2.3.5. 禁止错误回显 8 2.4. XSS跨站 8 2.4.1. 输入校验 8 2.4.2. 输出编码 8 2.5. XML注入 8 2.5.1. 输入校验 8 2.5.2. 输出编码 8 2.6. CSRF跨站请求伪造 8 2.6.1. Token使用 9 2.6.2. 二次验证 9 2.6.3. Referer验证 9 3. 逻辑安全 9 3.1. 身份验证 9 3.1.1. 概述 9 3.1.2. 提交凭证 9 3.1.3. 错误提示 9 3.1.4. 异常处理 10 3.1.5. 二次验证 10 3.1.6. 多因子验证 10 3.2. 短信验证 10 3.2.1. 验证码生成 10 3.2.2. 验证码限制 10 3.2.3. 安全提示 11 3.2.4. 凭证校验 11 3.3. 图灵测试 11 3.3.1. 验证码生成 11 3.3.2. 验证码使用 11 3.3.3. 验证码校验 11 3.4. 密码管理 12 3.4.1. 密码设置 12 3.4.2. 密码存储 12 3.4.3. 密码修改 12 3.4.4. 密码找回 12 3.4.5. 密码使用 12 3.5. 会话安全 13 3.5.1. 防止会话劫持 13 3.5.2. 会话标识符安全 13 3.5.3. Cookie安全设置 13 3.5.4. 防止CSRF攻击 13 3.5.5. 会话有效期 14 3.5.6. 会话注销 14 3.6. 访问控制 14 3.6.1. 跨权访问 14 3.6.2. 控制方法 14 3.6.3. 控制管理 14 3.6.4. 接口管理 15 3.6.5. 权限变更 15 3.7. 文件上传安全 15 3.7.1. 身份校验 15 3.7.2. 合法性校验 15 3.7.3. 存储环境设置 15 3.7.4. 隐藏文件路径 16 3.7.5. 文件访问设置 16 3.8. 接口安全 16 3.8.1. 网络限制 16 3.8.2. 身份认证 16 3.8.3. 完整性校验 16 3.8.4. 合法性校验 16 3.8.5. 可用性要求 17 3.8.6. 异常处理 17 4. 数据安全 17 4.1. 敏感信息 17 4.1.1. 敏感信息传输 17 4.1.2. 客户端保存 17 4.1.3. 服务端保存 17 4.1.4. 敏感信息维护 18 4.1.5. 敏感信息展示 18 4.2. 日志规范 18 4.2.1. 记录原则 18 4.2.2. 事件类型 18 4.2.3. 事件要求 18 4.2.4. 日志保护 19 4.3. 异常处理 19 4.3.1. 容错机制 19 4.3.2. 自定义错误信息 19 4.3.3. 隐藏用户信息 19 4.3.4. 隐藏系统信息 19 4.3.5. 异常状态恢复 20 4.3.6. 通信安全 20
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值