App如何防止抓包

简介: App安全非常重要,尤其是数据安全。但是我们知道通过Charles等工具可以对App的网络请求进行抓包,如果我们的数据没有进行加密,这样这些信息就会被清楚的提取出来,会被不法分子进行利用。保证数据安全有很多种方法,今天简单聊一聊如何通过简单几步防止抓包。

前言


App安全非常重要,尤其是数据安全。但是我们知道通过Charles等工具可以对App的网络请求进行抓包,如果我们的数据没有进行加密,这样这些信息就会被清楚的提取出来,会被不法分子进行利用。保证数据安全有很多种方法,今天简单聊一聊如何通过简单几步防止抓包。


正文


当我们进行网络请求的时候,一般通过URL的openConnection来建立连接,代码如下:


URLConnection conn = url.openConnection()
复制代码


其实openConnection这个函数还有一个版本,可以传入一个proxy对象,代码如下:


public URLConnection openConnection(Proxy proxy)
    throws java.io.IOException
复制代码


这样我们通过这个函数建立连接时传入一个Proxy.NO_PROXY,即可达到防止抓包的效果,如Charles等抓包工具就无法看到我们的链接信息了,代码如下


URLConnection conn = url.openConnection(Proxy.NO_PROXY)
复制代码


官方对于Proxy.NO_PROXY描述如下:


/**
 * A proxy setting that represents a {@code DIRECT} connection,
 * basically telling the protocol handler not to use any proxying.
 * Used, for instance, to create sockets bypassing any other global
 * proxy settings (like SOCKS):
 * <P>
 * {@code Socket s = new Socket(Proxy.NO_PROXY);}
 *
 */
public final static Proxy NO_PROXY = new Proxy();
// Creates the proxy that represents a {@code DIRECT} connection.
private Proxy() {
    type = Type.DIRECT;
    sa = null;
}
复制代码


我么可以看到NO_PROXY实际上就是type属性为DIRECT的一个Proxy对象,这个type有三种:

  • DIRECT
  • HTTP
  • SOCKS


官方描述如下:


public enum Type {
    /**
     * Represents a direct connection, or the absence of a proxy.
     */
    DIRECT,
    /**
     * Represents proxy for high level protocols such as HTTP or FTP.
     */
    HTTP,
    /**
     * Represents a SOCKS (V4 or V5) proxy.
     */
    SOCKS
};
复制代码


这样因为是直连,所以不走代理。所以Charles等工具就抓不到包了,这样一定程度上保证了数据的安全。

当然这种方式只是通过代理抓不到包,如果直接通过路由还是可以抓包的。


目录
相关文章
|
6月前
|
存储 Java API
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
805 0
|
6月前
|
安全
第二轮学习笔记:三、APP抓包
第二轮学习笔记:三、APP抓包
60 0
|
28天前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
480 1
|
3月前
|
运维 网络安全 开发工具
【应用服务 App Service】App Service 新手资料包
【应用服务 App Service】App Service 新手资料包
|
3月前
|
网络协议 Linux 网络安全
【Azure 应用服务】更便捷的方式抓取Azure App Service for Windows的网络包
【Azure 应用服务】更便捷的方式抓取Azure App Service for Windows的网络包
|
3月前
|
API 数据安全/隐私保护
【Azure 应用服务】App Service 通过 wardeploy 部署 war 包,如何指定到 root目录为wwwroot
【Azure 应用服务】App Service 通过 wardeploy 部署 war 包,如何指定到 root目录为wwwroot
|
3月前
|
数据库 Python
【Azure 应用服务】App Service中运行Python 编写的 Jobs,怎么来安装Python包 (pymssql)呢?
【Azure 应用服务】App Service中运行Python 编写的 Jobs,怎么来安装Python包 (pymssql)呢?
|
3月前
|
Linux 网络安全 容器
【Azure App Service for Linux】Linux Web App如何安装系统未安装的包
【Azure App Service for Linux】Linux Web App如何安装系统未安装的包
|
6月前
|
Android开发 开发者
 一键在线获取APP公钥、包名、签名及备案信息方法介绍
本文介绍了一款在线APP解析工具,可以一键获取APP的公钥、包名、签名等基础信息,同时提供了详细的操作步骤和使用示例,帮助开发者更便捷地进行APP备案信息的获取。
|
4月前
uniapp 制作 wgt 包(用于 app 的热更新)
uniapp 制作 wgt 包(用于 app 的热更新)
738 0

热门文章

最新文章