初识安全测试

APP端安全测试

安装包测试

1.APP发版前是否会进行加固和混淆,目的是为了能否反编译代码

常见的反编译工具: dex2jar、jd-gui

2.安装包是否有签名(IOS端可忽略)

3.完整性校验

常用做法:检查文件的MD5值,一般会用自动化去校验

4.权限设置检查

限制没必要的权限获取,如通讯录、定位、文件夹等权限,若没必要,需要去除

可在manifest文件检查

敏感信息测试

1.数据库是否包含明显信息,避免账户被盗用等

如:缓存、cookie =   jsessionid=XXXXX

logout之后需要对敏感信息删除、cookie类数据,需要设置合理的过期时间

2.日志当中是否包含敏感信息

包括APP端和server端

3.配置文件是否包含敏感信息

软键盘劫持

第三方应用劫持 银行卡密码、支付密码,IOS8以上也需要注意(因IOS8以上支持了第三方输入法安装使用)

账户安全

1.密码明文存储

密码,SMScode(验证码)

2.密码传输是否需要加密

对称加密与非对称加密

3.账户锁定策略

用户密码输入次数过多时,会进行临时锁定

4.同时会话策略

当其他手机登录该账户时,弹出提示

5.注销机制

数据通信安全

1.关键信息是否加密

2.关键链接是不是用来安全通信(HTTPS)

3.是否对数字证书合法性进行验证(证书校验、签名校验)

4.是否校验数据合法性

组件安全测试

activity、service、contentProvider、broadcast可通过drozer去调用

服务端的接口测试

1.SQL注入

2.XSS(拖库)

3.CSRF

SQL<XSS<CSRF

原文地址:https://www.cnblogs.com/Nick1994/p/8870208.html