介绍总结一下app安全方面
1.数据的安全
1).在app的访问请求数据中,一般是通过httpClient,UrlConnnection来从服务器端获取数据的,这么做在平常看来是没有问题的,
但是,我们可以通过工具去抓取这些传输过程中的信息.这么做的后果是:传输过程中的所有数据全部都暴露在我们面前了.
解决的方法:
1).加密
在数据传输前,通过加密算法对数据进行加密,服务器或者客户端在接收到数据的时候,通过解密方法,解密.
常用的加密算法:MD5,DES,AES
其中要说明的是:通过MD5加密的一般会放置到服务器,并不会拿着这个串去来回传递,因为MD5加密是非可逆的加密.
DES:非对称加密
AES:对称加密
另:有人用到了Base64,要说明一下,Base64的原理相当于对字符串进行了混淆,非常容易的就会拿到混淆前的字段.
2).我们可以抓取的数据,是在传输层传输的数据,那想办法在传输层做保障的话,就要用到了https,
原理:
https的根源仍然是加密,通过服务器端的证书和客户端的证书安全握手后,才能拿到数据.https要保证有效性,就一定要验证证书,
在实际开发中,可能因为某些原因,在客户端设置了过滤所有证书.那么,一旦这么做之后,我们就可以通过在手机上设置代理证书,来
抓取传输层的数据.
2).代码的安全
1).安全性在于,别人可以通过反编译去拿到你的源代码,并通过修改以及二次打包,窃取或者对你的应用造成极坏的影响.
解决方案:
1).代码混淆
通过google提供的混淆工具,对app中的类名,方法名进行混淆.
优点:
对代码的可阅读性提高难度
缺点:
仅仅是增加了代码的阅读性的难度,并没有真正的实现代码的安全.
2).市面上常用的加固
可以在一定程度上保证了app的代码安全,常见的一下代码反编译工具,无法对加固的应用进行反编译.
app应用的加固原理:
原理仍然是通过一定的加密算法,对app的资源文件进行加密.
1.对你的app进行反编译为.dex文件,然后通过加密对资源文件进行加密;
2.开启一个解密的app,然后把两个app通过工具整合成一个app文件;
3.对新生成的app进行签名;
app的启动原理:
1.数据的安全
1).在app的访问请求数据中,一般是通过httpClient,UrlConnnection来从服务器端获取数据的,这么做在平常看来是没有问题的,
但是,我们可以通过工具去抓取这些传输过程中的信息.这么做的后果是:传输过程中的所有数据全部都暴露在我们面前了.
解决的方法:
1).加密
在数据传输前,通过加密算法对数据进行加密,服务器或者客户端在接收到数据的时候,通过解密方法,解密.
常用的加密算法:MD5,DES,AES
其中要说明的是:通过MD5加密的一般会放置到服务器,并不会拿着这个串去来回传递,因为MD5加密是非可逆的加密.
DES:非对称加密
AES:对称加密
另:有人用到了Base64,要说明一下,Base64的原理相当于对字符串进行了混淆,非常容易的就会拿到混淆前的字段.
2).我们可以抓取的数据,是在传输层传输的数据,那想办法在传输层做保障的话,就要用到了https,
原理:
https的根源仍然是加密,通过服务器端的证书和客户端的证书安全握手后,才能拿到数据.https要保证有效性,就一定要验证证书,
在实际开发中,可能因为某些原因,在客户端设置了过滤所有证书.那么,一旦这么做之后,我们就可以通过在手机上设置代理证书,来
抓取传输层的数据.
2).代码的安全
1).安全性在于,别人可以通过反编译去拿到你的源代码,并通过修改以及二次打包,窃取或者对你的应用造成极坏的影响.
解决方案:
1).代码混淆
通过google提供的混淆工具,对app中的类名,方法名进行混淆.
优点:
对代码的可阅读性提高难度
缺点:
仅仅是增加了代码的阅读性的难度,并没有真正的实现代码的安全.
2).市面上常用的加固
可以在一定程度上保证了app的代码安全,常见的一下代码反编译工具,无法对加固的应用进行反编译.
app应用的加固原理:
原理仍然是通过一定的加密算法,对app的资源文件进行加密.
1.对你的app进行反编译为.dex文件,然后通过加密对资源文件进行加密;
2.开启一个解密的app,然后把两个app通过工具整合成一个app文件;
3.对新生成的app进行签名;
app的启动原理:
通过解码后,真正的创建app的页面.