Android APP安全处理那些事

简介: 公司的项目有安全合规方面的需求,上线前要经过安全架构师进行安全测试,安全测试通过才能上线,目前 APP 项目中涉及到的点整理如下。

前言


公司的项目有安全合规方面的需求,上线前要经过安全架构师进行安全测试,安全测试通过才能上线,目前 APP 项目中涉及到的点整理如下。


技术方面


  • 打包签名
  • APP里面的基本操作,使用打包服务器上的签名,日常开发测试可以使用同一签名文件(.keystore 文件)用于本地功能测试,如APP更新需要保证签名一致
  • APP打包加固
  • APK防反编译
  • 壳加密算法保护
  • DEX文件整体加固保护
  • DEX文件防篡改
  • 加固壳防动态调试
  • 防内存dump保护
  • 防内存数据读取
  • 使用腾讯云的"移动应用安全" -> "应用加固"
  • 免费版基础加固内容包含
  • APP安全所有功能加固使用对应的付费即可
  • 腾讯云:https://console.cloud.tencent.com


  • console.* 移除


  • 录音,图片文件存储必须在APP内部,而非外部用户可访问文件位置
  • 文件存储使用 react-native-fs 库,文件存储位置使用 DocumentDirectoryPath 属性


  • SSL 证书使用 HTTPS,线上环境的APP接口运维提供的都是HTTPS
  • APP 更新升级使用工作空间里的更新策略
  • APP 不走应用商店发布
  • APP中实现的强制更新和热更新功能弃用


业务方面


  • 首次打开强制登录
  • 登录后再次激活APP后,要输入用户手势
  • 密码复杂度要高,长度8位以上,必须包含大小写字母,数字,特殊符号
  • 用户名密码错误提示:必须提示 "用户名或密码错误" , 而不能提示 "密码错误"
  • 请求参数加密, 使用 AES256 对称加密
  • APP操作日志文件里不能保存业务敏感数据


手机出厂后系统自动安装的工作空间(安全软件/寻踪管家)安全策略


  • 不支持用户使用 USB 调试及文件传输功能,USB线只能充电
  • 不支持用户自定义手机权限
  • 不支持用户访问手机文件系统,浏览器等常规功能
  • 定制版的手机只支持访问当前用户的工作空间里面的工作 APP 和 地图两个软件
  • 接打电话,拍照,录音等业务操作手机上没有操作入口,只能由APP功能唤起
  • 用户不操作手机5分钟会自动锁屏,再次唤醒手机需要先输入工作空间的手势密码
  • 手机打开会自动打开工作空间,首次使用工作空间会强制登录,登录后再次打开工作空间


注意


工作空间中的策略会影响部分APP功能的正常使用,开发过程中APP直接在Android系统中测试OK的功能,在工作空间发布运行后不一定正常,异常情况包含:


  • 录音过程监听来电异常
  • 定位获取异常
  • 拍照保存异常
  • 录音功能异常
  • APP强制更新功能异常(后来APP更新使用工作空间的更新策略)


手机出厂刷机自带的工作空间这里的坑太大,工作空间的策略发布管理权限不在我们开发人员这里,在公司的业务IT那边,关于工作空间的测试,只能拿着手机去隔壁楼的IT那边刷机,开发再运行开发模式测试, 也导致了线上问题复现排查困难增大


目前项目中的涉及到的安全策略就这些,欢迎补充 ^-^


目录
相关文章
|
1月前
|
XML Java 数据库
安卓项目:app注册/登录界面设计
本文介绍了如何设计一个Android应用的注册/登录界面,包括布局文件的创建、登录和注册逻辑的实现,以及运行效果的展示。
118 0
安卓项目:app注册/登录界面设计
|
2月前
|
Java 数据库 Android开发
一个Android App最少有几个线程?实现多线程的方式有哪些?
本文介绍了Android多线程编程的重要性及其实现方法,涵盖了基本概念、常见线程类型(如主线程、工作线程)以及多种多线程实现方式(如`Thread`、`HandlerThread`、`Executors`、Kotlin协程等)。通过合理的多线程管理,可大幅提升应用性能和用户体验。
106 15
一个Android App最少有几个线程?实现多线程的方式有哪些?
|
2月前
|
存储 开发工具 Android开发
使用.NET MAUI开发第一个安卓APP
【9月更文挑战第24天】使用.NET MAUI开发首个安卓APP需完成以下步骤:首先,安装Visual Studio 2022并勾选“.NET Multi-platform App UI development”工作负载;接着,安装Android SDK。然后,创建新项目时选择“.NET Multi-platform App (MAUI)”模板,并仅针对Android平台进行配置。了解项目结构,包括`.csproj`配置文件、`Properties`配置文件夹、平台特定代码及共享代码等。
123 2
|
2月前
|
XML Android开发 数据格式
🌐Android国际化与本地化全攻略!让你的App走遍全球无障碍!🌍
在全球化背景下,实现Android应用的国际化与本地化至关重要。本文以一款旅游指南App为例,详细介绍如何通过资源文件拆分与命名、适配布局与方向、处理日期时间及货币格式、考虑文化习俗等步骤,完成多语言支持和本地化调整。通过邀请用户测试并收集反馈,确保应用能无缝融入不同市场,提升用户体验与满意度。
85 3
|
1月前
|
安全 网络安全 Android开发
深度解析:利用Universal Links与Android App Links实现无缝网页至应用跳转的安全考量
【10月更文挑战第2天】在移动互联网时代,用户经常需要从网页无缝跳转到移动应用中。这种跳转不仅需要提供流畅的用户体验,还要确保安全性。本文将深入探讨如何利用Universal Links(仅限于iOS)和Android App Links技术实现这一目标,并分析其安全性。
169 0
|
1月前
|
监控 安全 Apache
构建安全的URL重定向策略:确保从Web到App平滑过渡的最佳实践
【10月更文挑战第2天】URL重定向是Web开发中常见的操作,它允许服务器根据请求的URL将用户重定向到另一个URL。然而,如果重定向过程没有得到妥善处理,可能会导致安全漏洞,如开放重定向攻击。因此,确保重定向过程的安全性至关重要。
51 0
|
2月前
|
Java 数据库 Android开发
一个Android App最少有几个线程?实现多线程的方式有哪些?
本文介绍了Android应用开发中的多线程编程,涵盖基本概念、常见实现方式及最佳实践。主要内容包括主线程与工作线程的作用、多线程的多种实现方法(如 `Thread`、`HandlerThread`、`Executors` 和 Kotlin 协程),以及如何避免内存泄漏和合理使用线程池。通过有效的多线程管理,可以显著提升应用性能和用户体验。
67 10
|
2月前
|
XML 数据库 Android开发
10分钟手把手教你用Android手撸一个简易的个人记账App
该文章提供了使用Android Studio从零开始创建一个简单的个人记账应用的详细步骤,包括项目搭建、界面设计、数据库处理及各功能模块的实现方法。
|
3月前
|
API Android开发
Android P 性能优化:创建APP进程白名单,杀死白名单之外的进程
本文介绍了在Android P系统中通过创建应用进程白名单并杀死白名单之外的进程来优化性能的方法,包括设置权限、获取运行中的APP列表、配置白名单以及在应用启动时杀死非白名单进程的代码实现。
60 1
|
3月前
|
Android开发 iOS开发 C#
Xamarin:用C#打造跨平台移动应用的终极利器——从零开始构建你的第一个iOS与Android通用App,体验前所未有的高效与便捷开发之旅
【8月更文挑战第31天】Xamarin 是一个强大的框架,允许开发者使用单一的 C# 代码库构建高性能的原生移动应用,支持 iOS、Android 和 Windows 平台。作为微软的一部分,Xamarin 充分利用了 .NET 框架的强大功能,提供了丰富的 API 和工具集,简化了跨平台移动应用开发。本文通过一个简单的示例应用介绍了如何使用 Xamarin.Forms 快速创建跨平台应用,包括设置开发环境、定义用户界面和实现按钮点击事件处理逻辑。这个示例展示了 Xamarin.Forms 的基本功能,帮助开发者提高开发效率并实现一致的用户体验。
144 0