Android开发过程中需要网络访问获取数据,一般都是通过HTTP/HTTPS请求服务器获取数据;
但是HTTP/HTTPS请求很容易被别人使用一些像Fiddler等抓包工具抓取信息,对数据进行分析
很容易得到请求方式、请求接口地址、请求参数、消息头部信息、请求类型等信息,以及请求响应
返回的数据信息;
获取到这些信息后,一方面可以分析数据得到想要的数据,如获取视频网站中的视频路径等,
另一方面可以模拟各种请求不断发送到服务器,这样可以不停的从服务器获取数据,还可能造成服
务器负载过大;
有童鞋可能说我可以对数据进行加密,这样即使抓取到数据也无法识别;
但是有两个问题:
1. 加密的数据就真的不能解密了吗?
2. 服务器接口暴露也是很严重的;
实现防止不合规的代理抓包的思路:
1. 获取代理地址和端口
2. 判断代理地址和端口是否为空
3. 判断代理地址和端口是否是App需要的代理地址和端口;
代码如下:
//App中使用到的代理
String userProxyAddress = "112.152.23.6";
int userPort = 8597;
/**
*
* @return true:有代理而且不是客户自己设置的代理 ,false:无代理或客户自己设置的代理
*/
private boolean isNotWifiProxy() {
final boolean IS_ICS_OR_LATER = Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH;
String proxyAddress;
int proxyPort;
if (IS_ICS_
本文为VIP专属文章,单击开通VIP
作者:牛八少爷