手机App安全性测试初探
目前手机App测试还是以发现bug为主,主要测试流程就是服务器接口测试,客户端功能性覆盖,以及自动化配合的性能,适配,压测等,对于App安全性测试貌似没有系统全面统一的标准和流程,其实安全性bug也可以是bug的一种,只不过更加隐秘,难以发现,尤其针对于手机App。近期时间比较充裕,研究了一下安全性相关的东西,并对于我们自身的产品测试了一下(更主要的目的是游戏作弊刷分),发现了不少问题,总结一下。
我的理解,包括以webview为主体的app,站在入侵或者攻击的角度来讲,安全隐患在于http抓包,逆向工程。谈这之前先讲讲webview相关的app,前一段时间有个曝工资的软件很火,但有查询次数的限制,抓包研究了一下,发现其主要还是webview,通过抓包详细分析,才明白他记录查询次数的手段,每一个用户都会分配一个id,以及一个代表查询次数count以cookie的形式保存到本地,通过维护cookie达到限制查询次数的目的,所以清除cookie就可以无限制的查询了,个人觉得,webview相关的app安全性测试应该还是web测试那一套,xss攻击,sql注入等(没搞过web安全测试,仅推测)。
大部分app还是走的http或者https,所以防http抓包泄露用户信息以及系统自身漏洞是必要的,毕竟像腾讯那种通过自身通信协议增加安全性的还是少数的(抓过微信和qq的没抓着,不知道有没有相关工具可以抓手机tcp的包)。既然有接口测试为什么还需要单独对客户端进行抓包验证安全性呢?这么说吧,接口测试其实最主要的验证接口逻辑,可用性,边界值,异常检查,但并不能预先保证客户端调用不出问题,一个针对多个app抓包都发现的问题可以说明:抓了好多社交性app,发现对于用户资料隐私泄露还是很严重的,当你查看一个陌生用户信息时,一些手机号,qq等信息页面上应该不显示的,但这些信息不显示并不代表服务器没有下发,好多都是客户端限制的,通过抓包,完全可以查看到陌生用户的app。再如好多发帖,push消息的应用,如果没有消息有效性的验证,抓到包之后篡改消息,服务器一点反应都没,这就会留有极大的隐患。
至于逆向工程这点,对于android就很好理解了,反编译,修改或者插入自己的代码,以达到相应目的。真见过几个没有代码混淆的app,包括我们自己的以及大名鼎鼎snapchat,记得有个游戏特搞笑,游戏主题是C#写得,结果java的代码混淆了,C#的代码没有,修改了几个参数值,插了几段自己的代码,就作弊成功了。尤其好多开放平台的游戏,通过开放平台sdk文档,再加上反编译后些许信息,即使代码混淆了,也能推测出好多东西。这些都是安全性隐患。
以上这些只是最近一段时间对于手机app安全性测试的一点认识,很肤浅,安全性测试对于测试人员素质要求还是很高的,尤其好多都是经验性的东西,只有通过不断增加经验,才能更好的做好测试。
手机App安全性测试初探的更多相关文章
- 初识App安全性测试
目前手机App测试还是以发现bug为主,主要测试流程就是服务器接口测试,客户端功能性覆盖,以及自动化配合的性能,适配,压测等,对于App安全性测试貌似没有系统全面统一的标准和流程,其实安全性bug也可 ...
- 3-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案数据篇(安装配置数据库,使用Navicat for MySQL和手机APP 连接测试)
2-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案数据篇(数据库简单说明) https://www.mysql.com/ 咱用安装版的 我把自己下载的放在了这里 现在 ...
- 【转载】Loadrunner实现Android / IOS 手机APP压力测试
随着手机APP用户量的增大,大的手机APP一般都需要进行压力测试,这几天用了loadrunner 12进行了手机APP的压力测试,整理了下,大家可以参考参考怎样给Andorid / IOS手机APP进 ...
- Android手机app耗电量测试工具 - Gsam Battery Monitor
这段时间需要测试一个Android手机app的耗电量,在网上找了一个工具,Gsam Battery Monitor,觉得挺好用,和大家分享一下. 安装app后打开,可以看到主界面是这样的 点击一下上图 ...
- Loadrunner&Jemeter进行手机APP压力测试
一.loadrunner通过代理录制app脚本 随着手机APP的广泛应用,手机应用的使用已占据了大量的市场份额,尤其是优秀的手机APP,动辄用户过千万过亿,对于如此庞大的用户量,我们在开发APP时,也 ...
- 安卓手机APP兼容性测试如何有效进行?
Android App兼容性测试是一个比较重要的App评价内容,实际上兼容性测试不仅仅和测试人员相关,在开发阶段就应当着重考虑,因为兼容性问题是除了实现App本身要求的功能后,必须要关注.而且至关重要 ...
- 手机APP兼容性测试
兼容性测试方案 兼容性问题 屏幕分辨率兼容性问题 软件(iOS和Android系统版本及不同厂家的定制ROM)兼容性问题 硬件(不同的CPU.内存大小等等)兼容性问题 网络(2G/3G/4G/WIFI ...
- 数据库: 安装配置数据库,使用Navicat for MySQL和手机APP 连接测试(如果上一节碰到问题可参考这一节)
咱就安装上 还有这个 最终测试请参考上一节 启动MySQL服务主要有以下两种方法: 第一种: 在搜索框中输入“services,msc” ,en ...
- 手机app(功能)测试重点
在手机客户端进行查看的测试重点:1.“点击加载更多”的分页处理技术,是否有重复的数据,数据显示是否完整,到达最后一页后是否还有数据进行显示2.数据的排序方式2.界面跳转是否正确3.出现异常情况是否有提 ...
随机推荐
- 普通用户开放 sudo 权限
大家都知道 linux 每个目录都是有权限的,所以如果要想在此目录下读写,则要有这个目录的权限,或者就是有 sudo 权限,那怎么给普通用户赋予 sudo 权限呢,下面我们来看一下: 1.先用 roo ...
- javascript 编码规范
前端编码风格规范(3)-- JavaScript 规范 其他三个写的也挺好的,不过html和css我已经参照了其他的. 防污染与IIFE (function($, w, d){ 'use strict ...
- 12.Scrapy与mongodb交互和设置中间键
反反爬虫相关机制 Some websites implement certain measures to prevent bots from crawling them, with varying d ...
- Android-Genymotion Unable to load VirtualBox engine
点击Genymotion出现Genymotion Unable to load VirtualBox engine 解决方案: 打开官网,下载VirtualBox 点击安装: 然后再次点击打开Geny ...
- Caffe + Ubuntu 14.04 64bit + CUDA 6.5 配置说明2
1. 安装build-essentials 安装开发所需要的一些基本包 sudo apt-get install build-essential 2. 安装NVIDIA驱动 (3.4.0) 2.1 准 ...
- spark-mllib 密集向量和稀疏向量
spark-mllib 密集向量和稀疏向量 MLlib支持局部向量和矩阵存储在单台服务器,也支持存储于一个或者多个rdd的分布式矩阵 . 局部向量和局部矩阵是用作公共接口的最简单的数据模型. 基本的线 ...
- 【HDU5730】 Shell Necklace
HDU5730 Shell Necklace 题目大意 已知连续i(1<=i<=n)个贝壳组合成一段项链的方案数a[i],求组合成包含n个贝壳的项链的总方案数. Solution cdq分 ...
- #loj3090 [BJOI2019] 勘破神机
简单线性代数练习题 首先翻开具体数学生成函数一章,可以发现\(F(n),G(n)\)满足以下递推式 \[F(n)=F(n-1)+F(n-2),F(0)=1,F(1)=1\] \[G(n)=4G(n-2 ...
- JQuery Mobile - 自定义图标!
环境 jquery1.9.1.js jquery mobile 1.4.2版 图标制作 18x18px 底透明的png图标 使用图标,这个过程开始怎么弄都不行,只有个灰色的圆出现,不见图标:或者出现图 ...
- Java中goto和break、continue实现区别
goto 关键字很早就在程序设计语言中出现.事实上,goto 是汇编语言的程序控制结构的始祖:“若条件 A,则跳到这里:否则跳到那里”.若阅读由几乎所有编译器生成的汇编代码,就会发现程序控制里包含了许 ...