保护你的APP!快速了解如何进行APP安全性测试!

通常我们队APP所进行的安全性测试包含以下几个模块:安装包安全性、数据安全性、软键盘劫持、账户安全性、通信安全性、备份检查等。下面针对每个模块我们详细说明具体的测试方法。

安装包安全性

1、反编译

目的是为了保护公司的知识产权和安全方面的考虑等,一些程序开发人员会在源码中硬编码一些敏感信息,如密码。而且若程序内部一些设计欠佳的逻辑,也可能隐含漏洞,一旦源码泄漏,安全隐患巨大。

为了避免这些问题,除了代码审核外,通常开发的做法是对代码进行混淆,混淆后源代码通过反软件生成的源代码是很难读懂的。

测试中,我们可以直接使用反编译工具(Android端使用dex2jar和jd-gui工具,iOS端使用Hopper Disassembler、otool、ida pro等)查看源代码,判断是否进行了代码混淆,包括显而易见的敏感信息。

2、签名

这点IOS可以不用考虑,因为APP stroe都会校验。但Android没有此类权威检查,我们要在发布前校验一下签名使用的key是否正确,以防被恶意第三方应用覆盖安装等。可使用下列命令检查:

jarsigner -verify -verbose -certs apk包路径

若结果为“jar 已验证”,说明签名校验成功。

3、完整性校验

为确保安装包不会在测试完成到最终交付过程中因为某些原因发生文件损坏,需要对安装包进行完整性校验,通常做法是检查文件的md5值。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036【暗号:csdn999】

数据安全性

1、数据库

数据库是否存储敏感信息,某些应用会把cookie类数据保存在数据库中,一旦此数据被他人获取,可能造成用户账户被盗用等严重问题,测试中在跑完一个包含数据库操作的测试用例后,我们可以直接查看数据库里的数据,观察是否有敏感信息存储在内。一般来说这些敏感信息需要用户进行注销操作后删除。如果是cookie类数据,建议设置合理的过期时间。

2、日志

日志是否存在敏感信息,一般开发在写程序的过程中会加入日志帮助高度,所有可能会写入一些敏感信息,通常APP的发布版不会使用日志,但也不排除特殊情况。

3、配置文件

配置文件是否存在敏感信息,与日志类似,我们需要检查配置文件中是否包含敏感信息。

软键盘劫持

如果用户安装了第三方键盘,可能存在劫持情况,对此,我们在一些特别敏感的输入地方可以做检查,例如金融类APP登录界面的用户名密码输入框等,看是否支持第三方输入法,一般建议使用应用内的软键盘。

账户安全性

1、秘钥存储

密码是否明文存储在后台数据库。

2、秘钥传输

密码传输是否加密,测试中我们需要查看密码是否被明文传输,如果是HTTPS接口,我们可以使用Fiddler等工具直接查看。

3、防暴力破解

账户锁定策略。对于用户输入错误密码次数过多的情况,是否会将账户临时锁定,避免被暴力破解。

4、多端登录

同时会话情况。一些应用对同时会话会有通知功能,这样至少可以让用户知识他的账户可能已经被泄漏了。在一定程度上能免提升用户体验。

5、注销机制

在客户端注销后,我们需要验证任何的来自该用户的,需要身份验证的接口调用都不能成功。

通信安全性

1、安全连接

关键连接是否使用安全通信,例如HTTPS。在获知接口设计后我们需要评估是否其中内容包含敏感信息,如果未使用安全通信,需要知会开发修改。

2、数字证书

是否对数字证书合法性进行验证。即便使用了安全通信,例如HTTPS,我们也需要在客户端代码中对服务端证书进行合法性校验。测试中可以使用Fiddler工具模拟中间人攻击方法。如果客户端对于Fiddler证书没有校验而能正常调用,则存在安全隐患。

备份检查

只需在Android端检查,使用adb backup命令检查应用是否允许备份数据。

以上是小编总结的APP安全性测试的相关关注点,欢迎感兴趣的朋友们交流

END今天的分享就到此结束了,点赞关注不迷路!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/181837.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Appium 全新 2.0 全新跨平台生态,版本特性抢鲜体验!

关于Appium V2 Appium V2 beta版本在2021年发布,从2022年1月1号开始,Appium核心团队不会再维护Appium 1.x版本了,所有近期官方发布的平台驱动(如Android平台的UIAutomator,IOS平台的XCUITest)不再兼容Appi…

相比其他关系型数据库,AntDB JDBC驱动特性有哪些不同之处

摘要:使用Java语言进行各类应用程序的快速开发成为目前比较主要且流行的开发方式。JDBC是 Java 语言中用来连接和操作关系型数据库的 API,在业务程序与关系型数据库通信时,必然会使用JDBC驱动。 本文将通过国产关系型数据库AntDB中的JDBC为大…

在PCL视图器中使用随机生成的颜色来可视化一组匹配的点对

std::vector<Eigen::Vector2d> centroids_unknown_motion_underk; std::vector<Eigen::Vector2d> centroids_unknown_motion_k; // 进行数字填充 pcl::visualization::PCLVisualizer viewer("Centroid Visualization");int id 0;// 添加 XY 坐标系doub…

中国人总爱乱吃药,这些家庭常见药我劝你别乱吃!

你可能在各种抖音快手上都看到过博主推荐生活小窍门—— 比如巧用二甲双胍减肥&#xff0c;六味地黄丸包治百病&#xff0c;阿司匹林巧治高血压…… 世上本没有神药&#xff0c;用得多了&#xff0c;也就变成神药了。 ——这句话鲁迅没说&#xff0c;也没有任何道理可言。 说…

uni-app开发小程序,利用scroll-view实现自动滚动至对应数据

uniapp scroll-view 官网 vue文件内容&#xff1a;dom: <scroll-view scroll-y :scroll-into-view"seqToView"><view class"pop-scroll"><viewv-for"(item,index) in seqList":id"seq- item":key"index"cl…

ubuntu20.04安装多版本cuda,切换版本

1. 安装cuda toolkit: 下载网站 https://developer.nvidia.com/cuda-11.3.0-download-archive 选择版本&#xff0c;这里选择11.3 wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run给cuda权限: chmod x…

数据结构与算法【红黑树】的Java实现+图解

前言 建议先阅读普通二叉搜索树与平衡二叉搜索树的文章。理解一些基本的二叉树知识数据结构与算法【二叉搜索树】Java实现-CSDN博客 介绍 红黑树也是一种自平衡的二叉搜索树&#xff0c;较之 AVL&#xff0c;插入和删除时旋转次数更少。 首先介绍代码实现会用到的概念 兄弟…

python-opencv在图片中绘制各种图形

python-opencv在图片中绘制各种图形 1.绘制直线 2.绘制矩形 3.绘制圆 4.绘制椭圆 5.绘制多边形 6.嵌入文字 实现代码都在下面了&#xff0c;代码中参数做了简单注释 import copy import math import matplotlib.pyplot as plt import matplotlib as mpl import numpy a…

OpenStack云计算平台-启动一个实例

目录 一、创建虚拟网络 ​二、创建m1.nano规格的主机 三、生成一个键值对 四、增加安全组规则 ​五、启动一个实例 1、确定实例选项 2、创建实例 3、使用虚拟控制台访问实例 4、验证能否远程访问实例 一、创建虚拟网络 下面的说明和框图使用示例IP 地址范围。你必须依…

单个视频生成视频二维码,手把手图文教程

单个视频生成视频二维码帮助教程&#xff08;图文教程&#xff09;&#xff0c;手把手教程如下&#xff1a; STEP1 注册帐号 使用视频二维码&#xff0c;您需要注册酷播云用户帐号&#xff08;免费5G空间&#xff0c;普通用户够用&#xff09;。 参考如图1-1&#xff0c;按照…

关于ElectronVue3中集成讯飞星火AI

前言&#xff1a;我的最终目的是为了在QQ上集成一个AI机器人&#xff0c;因此在这里先实现一个简单的集成 先上效果图 总体还是很简单的&#xff0c;我在调用websock获取回复内容的基础上另外集成了一个事件总线&#xff0c;让我们在调用获取消息的时候能够更加方便快捷 工具代…

前端学习--React(3)

一、Redux 集中状态管理工具&#xff0c;不需要react即可使用&#xff0c;每个store的数据都是独立于组件之外的 vue小链接&#xff1a;vuex/pinia 基本使用 Redux将数据修改流程分成三个概念&#xff0c;state、action和reducer state - 一个对象 存放我们管理的数据状态 a…

OpenStack云计算平台-镜像服务

目录 一、镜像服务概览 二、安装和配置 1、先决条件 2、安全并配置组件 3、完成安装 三、验证操作 一、镜像服务概览 OpenStack镜像服务是IaaS的核心服务&#xff0c;如同 :ref:get_started_conceptual_architecture所示。它接受磁盘镜像或服务器镜像API请求&#xff0c;…

2023服务端测试开发必备技能:Mock测试

什么是mock测试 Mock 测试就是在测试活动中&#xff0c;对于某些不容易构造或者不容易获取的数据/场景&#xff0c;用一个Mock对象来创建以便测试的测试方法。 Mock测试常见场景 无法控制第三方系统接口的返回&#xff0c;返回的数据不满足要求依赖的接口还未开发完成&#…

浅谈电气设备的绝缘在线监测与状态维修探究

贾丽丽 安科瑞电气股份有限公司 上海嘉定 201801 摘要&#xff1a;在线监测是控制好电气设备绝缘的重要方式&#xff0c;为电力系统稳定奠定重要基础。在线监测电气设备时&#xff0c;要利用检测技术促进电力系统运行效率提升&#xff0c;让电气设备在具体工作过程中发挥更大作…

YAML 深入解析:从语法到最佳实践

什么是YAML YAML&#xff08;YAML Ain’t Markup Language&#xff09;是一种人类可读的数据序列化语言。它的设计目标是使数据在不同编程语言之间交换和共享变得简单。YAML采用了一种简洁、直观的语法&#xff0c;以易于阅读和编写的方式表示数据结构。 YAML广泛应用于配置文…

外部 prometheus监控k8s集群资源(pod、CPU、service、namespace、deployment等)

prometheus监控k8s集群资源 一&#xff0c;通过CADvisior 监控pod的资源状态1.1 授权外边用户可以访问prometheus接口。1.2 获取token保存1.3 配置prometheus.yml 启动并查看状态1.4 Grafana 导入仪表盘 二&#xff0c;通过kube-state-metrics 监控k8s资源状态2.1 部署 kube-st…

php生成xml数据

在PHP中&#xff0c;你可以使用以下几种方法生成XML数据&#xff1a; 使用DOM扩展&#xff1a; $xml new DOMDocument(1.0, UTF-8); $root $xml->createElement(root); $xml->appendChild($root); $child $xml->createElement(child); $root->appendChild($ch…

鸿蒙原生应用/元服务开发-AGC分发如何配置签名信息

使用制作的私钥&#xff08;.p12&#xff09;文件、在AGC申请的证书文件和Profile&#xff08;.p7b&#xff09;文件&#xff0c;在DevEco Studio配置工程的签名信息&#xff0c;以构建携带发布签名信息的APP。 1.打开DevEco Studio&#xff0c;菜单选择“File > Project S…
最新文章