一种基于IOS设备的网页拦截方法和设备.pdf

上传人:zhu****69 文档编号:1491336 上传时间:2018-06-18 格式:PDF 页数:20 大小:6MB
返回 下载 相关 举报
摘要
申请专利号:

CN201310338264.3

申请日:

2013.08.06

公开号:

CN103366019A

公开日:

2013.10.23

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 17/30申请日:20130806|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

飞天诚信科技股份有限公司

发明人:

陆舟; 于华章

地址:

100085 北京市海淀区学清路9号汇智大厦B楼17层

优先权:

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

本发明公开一种基于iOS设备的网页拦截方法和设备,应用于包括应用程序和系统组件的iOS设备中,应用程序通过对系统默认的统一资源定位符缓存对象进行子类化处理,得到对网络请求的控制权,使用链接字符串,对从请求消息中解析出的统一资源定位符字符串进行匹配,并在匹配成功时,生成伪装响应数据,并根据该伪装响应数据进行显示,能够实现对网页广告或恶意网页的拦截,降低对系统资源和网络资源的占用,提高系统的运行速度以及用户访问网络的速度和流畅度,减少对设备电量的消耗。

权利要求书

1.  一种基于iOS设备的网页拦截方法,应用于包括应用程序和系统组件的iOS设备中,其特征在于,所述方法包括以下步骤:
S1、所述应用程序启动,创建统一资源定位符缓存类的子类对象,将所述子类对象指定为统一资源定位符缓存对象,所述统一资源定位符缓存对象为所述系统组件发起网络请求时访问的对象;
S2、所述应用程序获取用户输入的超文本传输协议地址,根据所述超文本传输协议地址生成第一请求消息,将所述第一请求消息发送给所述系统组件;
S3、所述应用程序通过所述子类对象,监听所述系统组件发起的网络请求;
S4、当所述应用程序监听到所述系统组件发起的网络请求时,所述应用程序从所述系统组件获取第二请求消息,对所述第二请求消息进行解析,得到所述第二请求消息所包含的统一资源定位符字符串;
S5、所述应用程序使用链接字符串对解析出的统一资源定位符字符串进行匹配,如果匹配成功,则执行步骤S6;如果匹配失败,则执行步骤S7;
S6、所述应用程序生成伪装响应数据,将所述伪装响应数据返回给所述系统组件,通过所述系统组件对所述伪装响应数据进行显示处理,并返回步骤S3;
S7、所述应用程序向网站服务器发送所述第二请求消息,接收所述网站服务器返回的响应消息,将所述响应消息发送给所述系统组件,并返回步骤S3。

2.
  如权利要求1所述的方法,其特征在于,所述步骤S2,具体为:
所述应用程序获取用户输入的超文本传输协议地址,将所述超文本传输协议地址作为所述第一请求消息中的统一资源定位符字符串,生成所述第一请求消息,根据所述第一请求消息调用所述系统组件中的方法,向所述网站服务器发起网络请求,所述第一请求消息包括统一资源定位符字符串、缓存方式信息和超时时间。

3.
  如权利要求1所述的方法,其特征在于,所述步骤S5,具体包括:
A1、所述应用程序从预置的链接匹配文件的起始位置开始,读取一行链接字符串,将当前位置设置为读取到的链接字符串的末尾;
A2、所述应用程序对所述读取到的链接字符串和解析出的统一资源定位符字符串进行匹配,如果所述读取到的链接字符串与所述解析出的统一资源定位 符字符串匹配成功,则执行步骤S6;如果所述读取到的链接字符串和所述解析出的统一资源定位符字符串匹配失败,则执行步骤 A3;
A3、所述应用程序判断当前位置是否为所述链接匹配文件的结束位置,如果是,则执行步骤S7;否则,执行步骤A4;
A4、所述应用程序自当前位置开始,从所述链接匹配文件中读取一行链接字符串,将当前位置更新为读取到的链接字符串的末尾,并返回步骤A2。

4.
  如权利要求3所述的方法,其特征在于,所述步骤A2,具体包括:
B1、所述应用程序对所述读取到的链接字符串进行解析,得到有效字符串,提取所述有效字符串的首字符,并对当前遍历下标进行初始化;
B2、所述应用程序根据所述当前遍历下标,从所述解析出的统一资源定位符字符串中提取对应的字符,判断提取到的字符是否为结束符,如果是,则确定所述读取到的链接字符串与所述解析出的统一资源定位符字符串匹配失败,执行步骤A3;否则,执行步骤B3;
B3、所述应用程序判断所述提取到的字符是否与所述有效字符串的首字符相同,如果是,则执行步骤B5;否则,执行步骤B4;
B4、所述应用程序对所述当前遍历下标进行更新,并返回步骤B2;
B5、所述应用程序从所述当前遍历下标对应的字符开始,从所述解析出的统一资源定位符字符串中截取与所述有效字符串长度相等的字符串,判断截取的字符串是否与所述有效字符串相同,如果不同,则返回步骤B4;如果相同,则确定所述读取到的链接字符串与所述解析出的统一资源定位符字符串匹配成功,执行步骤S6。

5.
  如权利要求4所述的方法,其特征在于,所述应用程序对当前遍历下标进行初始化,具体为:
所述应用程序将当前遍历下标初始化为0;
所述应用程序对所述当前遍历下标进行更新,具体为:
所述应用程序将所述当前遍历下标加1。

6.
  如权利要求3所述的方法,其特征在于,所述步骤A2,具体包括:
C1、所述应用程序按照所述读取到的链接字符串中的通配符,将所述读取到的链接字符串拆分为多个子字符串;
C2、所述应用程序从拆分得到的子字符串中选取一个未被处理过的子字符串;
C3、所述应用程序判断选取的子字符串是否包含在所述解析出的统一资源定位符字符串中,如果是,则确定所述读取到的链接字符串与所述解析出的统一资源定位符字符串匹配成功,执行步骤S6;否则,将所述选取的子字符串标记为已被处理过,并执行步骤C4;
C4、所述应用程序判断所述拆分得到的子字符串是否均被处理过,如果是,则确定所述读取到的链接字符串与所述解析出的统一资源定位符字符串匹配失败,执行步骤A3;否则,返回步骤C2。

7.
  如权利要求3所述的方法,其特征在于,所述应用程序对所述读取到的链接字符串和解析出的统一资源定位符字符串进行匹配,具体为:
所述应用程序获取与所述读取到的链接字符串对应的正则表达式,使用所述正则表达式与所述解析出的统一资源定位符字符串进行匹配。

8.
  如权利要求1所述的方法,其特征在于,所述应用程序生成伪装响应数据,将所述伪装响应数据返回给所述系统组件,具体为:
所述应用程序根据本地资源文件生成一个伪装的响应句柄,将所述响应句柄作为所述伪装响应数据返回给所述系统组件,所述响应句柄用于伪装所述网站服务器返回的响应数据,所述响应句柄包括头域、内容和缓存方式信息;
所述应用程序通过所述系统组件对所述伪装响应数据进行显示处理,具体为:
所述应用程序通过加载所述系统组件,显示与所述伪装响应数据对应的本地资源文件。

9.
  如权利要求8所述的方法,其特征在于,所述应用程序根据本地资源文件生成一个伪装的响应句柄,具体为:
所述应用程序获取与所述解析出的统一资源定位符字符串对应的资源文件 类型,根据所述资源文件类型,选择对应的本地资源文件,根据所述本地资源文件生成一个伪装的响应句柄。

10.
  如权利要求1所述的方法,其特征在于,所述步骤S7,具体包括:
当所述应用程序判断出本地缓存中没有存储与所述解析出的统一资源定位符字符串对应的资源文件时,所述应用程序向所述网站服务器发送所述第二请求消息,接收所述网站服务器返回的响应消息,将所述响应消息发送给所述系统组件;
所述步骤S7之前,还包括:
所述应用程序判断所述本地缓存中是否存储有与所述解析出的统一资源定位符字符串对应的资源文件。

11.
  如权利要求10所述的方法,其特征在于,所述应用程序判断所述本地缓存中是否存储有与所述解析出的统一资源定位符字符串对应的资源文件之后,还包括:
当所述应用程序判断出本地缓存中存储有与所述解析出的统一资源定位符字符串对应的资源文件时,所述应用程序将所述本地缓存中与所述解析出的统一资源定位符字符串对应的资源文件发送给所述系统组件,通过所述系统组件显示所述资源文件,并返回步骤S3。

12.
  如权利要求1所述的方法,其特征在于,所述网站服务器返回的响应消息为响应数据,所述响应数据包含资源类型、资源大小、资源名称和资源数据;
所述应用程序接收所述网站服务器返回的响应数据,将所述响应数据发送给所述系统组件之后,还包括:
所述应用程序通过所述系统组件,显示与所述响应数据对应的资源文件。

13.
  一种iOS设备,包括应用程序和系统组件,其特征在于,所述应用程序包括:
初始化模块,用于在所述应用程序启动时,创建统一资源定位符缓存类的 子类对象,将所述子类对象指定为统一资源定位符缓存对象,所述统一资源定位符缓存对象为所述系统组件发起网络请求时访问的对象;
请求模块,用于获取用户输入的超文本传输协议地址,根据所述超文本传输协议地址生成第一请求消息,将所述第一请求消息发送给所述系统组件;
监听模块,用于通过所述初始化模块创建的所述子类对象,监听所述系统组件发起的网络请求;
解析模块,用于在所述监听模块监听到所述系统组件发起的网络请求时,从所述系统组件获取第二请求消息,对所述第二请求消息进行解析,得到所述第二请求消息所包含的统一资源定位符字符串;
匹配模块,用于使用链接字符串对所述解析模块解析出的统一资源定位符字符串进行匹配;
伪装模块,用于在所述匹配模块匹配成功时,生成伪装响应数据,将所述伪装响应数据返回给所述系统组件,通过所述系统组件对所述伪装响应数据进行显示处理;
第一响应模块,用于在所述匹配模块匹配失败时,向网站服务器发送所述第二请求消息,接收所述网站服务器返回的响应消息,将所述响应消息发送给所述系统组件。

14.
  如权利要求13所述的iOS设备,其特征在于,
所述请求模块,具体用于获取用户输入的超文本传输协议地址,将所述超文本传输协议地址作为所述第一请求消息中的统一资源定位符字符串,生成所述第一请求消息,根据所述第一请求消息调用所述系统组件中的方法,向所述网站服务器发起网络请求,所述第一请求消息包括统一资源定位符字符串、缓存方式信息和超时时间。

15.
  如权利要求13所述的iOS设备,其特征在于,所述匹配模块,具体包括读取子模块、匹配子模块和判断子模块,其中,
所述读取子模块,用于从预置的链接匹配文件的起始位置开始,读取一行链接字符串,将当前位置设置为读取到的链接字符串的末尾;在被所述判断子模块触发时,自当前位置开始,从所述链接匹配文件中读取一行链接字符串, 将当前位置更新为读取到的链接字符串的末尾;
所述匹配子模块,用于对所述读取子模块读取到的链接字符串和所述解析模块解析出的统一资源定位符字符串进行匹配,如果所述读取到的链接字符串与所述解析出的统一资源定位符字符串匹配成功,则触发所述伪装模块;如果所述读取到的链接字符串和所述解析出的统一资源定位符字符串匹配失败,则触发所述判断子模块;
所述判断子模块,用于判断当前位置是否为所述链接匹配文件的结束位置,如果是,则触发所述第一响应模块;否则,触发所述读取子模块。

16.
  如权利要求15所述的iOS设备,其特征在于,所述匹配子模块,具体用于执行以下操作:
B1、对所述读取到的链接字符串进行解析,得到有效字符串,提取所述有效字符串的首字符,并对当前遍历下标进行初始化;
B2、根据所述当前遍历下标,从所述解析出的统一资源定位符字符串中提取对应的字符,判断提取到的字符是否为结束符,如果是,则确定所述读取到的链接字符串与所述解析出的统一资源定位符字符串匹配失败,触发所述判断子模块;否则,执行步骤B3;
B3、判断所述提取到的字符是否与所述有效字符串的首字符相同,如果是,则执行步骤B5;否则,执行步骤B4;
B4、对所述当前遍历下标进行更新,并返回步骤B2;
B5、从所述当前遍历下标对应的字符开始,从所述解析出的统一资源定位符字符串中截取与所述有效字符串长度相等的字符串,判断截取的字符串是否与所述有效字符串相同,如果不同,则返回步骤B4;如果相同,则确定所述读取到的链接字符串与所述解析出的统一资源定位符字符串匹配成功,触发所述伪装模块。

17.
  如权利要求16所述的iOS设备,其特征在于,所述匹配子模块对当前遍历下标进行初始化,具体为:
所述匹配子模块将当前遍历下标初始化为0;
所述匹配子模块对所述当前遍历下标进行更新,具体为:
所述匹配子模块将所述当前遍历下标加1。

18.
  如权利要求15所述的iOS设备,其特征在于,所述匹配子模块,具体用于执行以下操作:
C1、按照所述读取到的链接字符串中的通配符,将所述读取到的链接字符串拆分为多个子字符串;
C2、从拆分得到的子字符串中选取一个未被处理过的子字符串;
C3、判断选取的子字符串是否包含在所述解析出的统一资源定位符字符串中,如果是,则确定所述读取到的链接字符串与所述解析出的统一资源定位符字符串匹配成功,触发所述伪装模块;否则,将所述选取的子字符串标记为已被处理过,并执行步骤C4;
C4、判断根据所述拆分得到的子字符串是否均被处理过,如果是,则确定所述读取到的链接字符串与所述解析出的统一资源定位符字符串匹配失败,触发所述判断子模块;否则,返回步骤C2。

19.
  如权利要求15所述的iOS设备,其特征在于,所述匹配子模块,具体用于获取与所述读取到的链接字符串对应的正则表达式,使用所述正则表达式与所述解析出的统一资源定位符字符串进行匹配。

20.
  如权利要求13所述的iOS设备,其特征在于,所述伪装模块,包括:
生成子模块,用于在所述匹配模块匹配成功时,根据本地资源文件生成一个伪装的响应句柄,所述响应句柄用于伪装所述网站服务器返回的响应数据,所述响应句柄包括头域、内容和缓存方式信息;
发送子模块,用于将所述生成子模块生成的所述响应句柄作为所述伪装响应数据返回给所述系统组件;
显示子模块,用于通过加载所述系统组件,显示与所述伪装响应数据对应的本地资源文件。

21.
  如权利要求20所述的iOS设备,其特征在于,所述生成子模块,具体用于获取与所述解析出的统一资源定位符字符串对应的资源文件类型,根据所 述资源文件类型,选择对应的本地资源文件,根据所述本地资源文件生成一个伪装的响应句柄。

22.
  如权利要求13所述的iOS设备,其特征在于,还包括:
判断模块,用于在所述匹配模块匹配失败时,判断本地缓存中是否存储有与所述解析出的统一资源定位符字符串对应的资源文件;
所述第一响应模块,具体用于在所述判断模块判断出所述本地缓存中没有存储与所述解析出的统一资源定位符字符串对应的资源文件时,向所述网站服务器发送所述第二请求消息,接收所述网站服务器返回的响应消息,将所述响应消息发送给所述系统组件。

23.
  如权利要求22所述的iOS设备,其特征在于,还包括:
第二响应模块,用于在所述判断模块判断出所述本地缓存中存储有与所述解析出的统一资源定位符字符串对应的资源文件时,将所述本地缓存中与所述解析出的统一资源定位符字符串对应的资源文件发送给所述系统组件,通过所述系统组件显示所述资源文件。

24.
  如权利要求13所述的iOS设备,其特征在于,所述网站服务器返回的响应消息为响应数据,所述响应数据包含资源类型、资源大小、资源名称和资源数据;
所述第一响应模块,还用于通过所述系统组件,显示与所述响应数据对应的资源文件。

说明书

一种基于iOS设备的网页拦截方法和设备
技术领域
本发明涉及计算机技术领域,特别涉及一种基于iOS设备的网页拦截方法和设备。
背景技术
随着互联网的迅猛发展,iOS(苹果研发操作系统)设备的普及率也日益提高。iOS设备是使用iOS作为其操作系统的设备,包括iPhone、iPad、iPod Touch以及Apple TV等产品。用户在使用iOS设备中的网页浏览器访问网页时,通常会在不知情的情况下触发预置的网页广告或者恶意网页。其中,网页广告通过使用网站上的广告横幅、文本链接和多媒体等方法,将广告信息通过网络传递到互联网用户。
发明人在实现本发明的过程中,发现现有技术至少存在以下缺陷:
网站上预置的网页广告或者恶意网页被触发后,会占用系统资源和网络资源,降低系统的运行速度以及用户访问网络的速度和流畅度;对于移动设备而言,网页广告和恶意网页还会消耗设备的电量。此外,恶意网页被触发后,还会向客户端植入病毒,实现对客户端的监听,从客户端中盗取通信录、用户个人信息等隐私信息,甚至对客户端以及使用该客户端的用户进行定位,带来巨大的安全隐患。
发明内容
本发明提供了一种基于iOS设备的网页拦截方法和设备,以解决现有技术中由于触发网页广告或恶意网页而导致资源被占用的问题。
本发明提供了一种基于iOS设备的网页拦截方法,应用于包括应用程序和系统组件的iOS设备中,所述方法包括以下步骤:
S1、所述应用程序启动,创建统一资源定位符缓存类的子类对象,将所述子类对象指定为统一资源定位符缓存对象,所述统一资源定位符缓存对象为所述系统组件发起网络请求时访问的对象;
S2、所述应用程序获取用户输入的超文本传输协议地址,根据所述超文本 传输协议地址生成第一请求消息,将所述第一请求消息发送给所述系统组件;
S3、所述应用程序通过所述子类对象,监听所述系统组件发起的网络请求;
S4、当所述应用程序监听到所述系统组件发起的网络请求时,所述应用程序从所述系统组件获取第二请求消息,对所述第二请求消息进行解析,得到所述第二请求消息所包含的统一资源定位符字符串;
S5、所述应用程序使用链接字符串对解析出的统一资源定位符字符串进行匹配,如果匹配成功,则执行步骤S6;如果匹配失败,则执行步骤S7;
S6、所述应用程序生成伪装响应数据,将所述伪装响应数据返回给所述系统组件,通过所述系统组件对所述伪装响应数据进行显示处理,并返回步骤S3;
S7、所述应用程序向网站服务器发送所述第二请求消息,接收所述网站服务器返回的响应消息,将所述响应消息发送给所述系统组件,并返回步骤S3。
本发明还提供了一种iOS设备,包括应用程序和系统组件,所述应用程序包括:
初始化模块,用于在所述应用程序启动时,创建统一资源定位符缓存类的子类对象,将所述子类对象指定为统一资源定位符缓存对象,所述统一资源定位符缓存对象为所述系统组件发起网络请求时访问的对象;
请求模块,用于获取用户输入的超文本传输协议地址,根据所述超文本传输协议地址生成第一请求消息,将所述第一请求消息发送给所述系统组件;
监听模块,用于通过所述初始化模块创建的所述子类对象,监听所述系统组件发起的网络请求;
解析模块,用于在所述监听模块监听到所述系统组件发起的网络请求时,从所述系统组件获取第二请求消息,对所述第二请求消息进行解析,得到所述第二请求消息所包含的统一资源定位符字符串;
匹配模块,用于使用链接字符串对所述解析模块解析出的统一资源定位符字符串进行匹配;
伪装模块,用于在所述匹配模块匹配成功时,生成伪装响应数据,将所述伪装响应数据返回给所述系统组件,通过所述系统组件对所述伪装响应数据进行显示处理;
第一响应模块,用于在所述匹配模块匹配失败时,向网站服务器发送所述第二请求消息,接收所述网站服务器返回的响应消息,将所述响应消息发送给 所述系统组件。
本发明达到的有益效果:通过对系统默认的URL(Uniform/Universal Resource Locator,统一资源定位符)缓存对象进行子类化处理,将网络请求的控制权从iOS系统转移到应用程序;应用程序使用链接字符串,对从请求消息中解析出的URL字符串进行匹配,并在匹配成功时,生成伪装响应数据,并根据该伪装响应数据进行显示,能够实现对网页广告或恶意网页的拦截,降低对系统资源和网络资源的占用,提高系统的运行速度以及用户访问网络的速度和流畅度,减少对设备电量的消耗。
附图说明
图1为本发明实施例中的iOS设备的结构示意图;
图2为本发明实施例中的一种基于iOS设备的网页拦截方法的流程图;
图3为本发明实施例中的应用程序使用链接字符串进行匹配的流程图;
图4为本发明实施例中的一种iOS设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种基于iOS设备的网页拦截方法,应用于包括应用程序和系统组件的iOS设备中,如图1所示,应用程序在初始化阶段创建URL缓存类的子类对象,将该子类对象指定为URL缓存对象,该URL缓存对象为系统默认的用于缓存数据的对象,在网络请求发起时被访问。
例如,URL缓存类为NSURLCache类时,可以创建NSURLCache类的子类,即,FTURLCache类,并创建FTURLCache类的对象cache,将cache对象指定为系统默认的NSURLCache对象。由于SDK(Software Development Kit,软件开发工具包)中的网络请求通常会访问系统默认的NSURLCache对象,将cache对象指定为系统默认的NSURLCache对象后,SDK中的网络请求会访问cache对象,从而使得cache对象能够监听和处理网络请求。
应用程序启动后,可以根据用户输入的HTTP(HyperText Transfer Protocol,超文本传输协议)地址生成第一请求消息,将该第一请求消息发送给系统组件,通过该系统组件发起网络请求;系统组件访问应用程序创建的URL缓存类的子类对象,例如cache对象;上述子类对象从系统组件获取第二请求消息,并向系统组件返回响应消息;系统组件根据该响应消息进行显示。通过创建和指定URL缓存类的子类对象,能够将网络请求的控制权从iOS系统转移到应用程序,通过应用程序对请求消息和网页数据进行处理,实现对网页广告和恶意网页的拦截。
基于上述iOS设备,本发明实施例中的网页拦截方法,如图2所示,包括以下步骤:
步骤201,应用程序启动,并执行初始化操作。
具体地,在iOS系统中,系统组件通常将缓存的数据存储到系统默认的NSURLCache对象。NSURLCache对象为全局共享的对象,SDK中的网络请求基本上都会访问NSURLCache对象,NSURLCache对象中的cachedResponseForReques方法将NSURLRequest对象映射到NSCachedURLResponse对象,并返回NSCachedURLResponse对象。其中,系统组件可以为UIWebView组件。
基于上述机制,本实施例可以定义NSURLCache类的子类,即,FTURLCache类,在FTURLCache类中重写cachedResponseForRequest方法,并在应用程序启动时,在AppDelegate入口处进入以下方法:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
在上述方法中,可以创建FTURLCache类的对象cache,通过调用setSharedURLCache方法,将创建的cache对象指定为系统默认的NSURLCache对象,添加到系统中。
由于SDK中的网络请求通常会访问系统默认的NSURLCache对象,将cache对象指定为系统默认的缓存对象后,SDK中的网络请求会访问cache对象,从而使得cache对象能够监听和处理网络请求。
步骤202,应用程序获取用户输入的HTTP地址,根据该HTTP地址生成第一请求消息,将该第一请求消息发送给系统组件,通过该系统组件向网站服务 器发起网络请求。
具体地,应用程序可以获取用户输入的HTTP地址,将该HTTP地址作为第一请求消息中的URL字符串,生成第一请求消息,根据该第一请求消息调用系统组件中的方法,向网站服务器发起网络请求。
其中,系统组件为UIWebView组件,第一请求消息为NSURLRequest对象的实例,可以包括URL字符串、缓存方式信息和超时时间。
例如,应用程序获取到的HTTP地址为“www.aaa.com.cn”时,生成的第一请求消息为:
“<NSURLRequest url:http://www.aaa.com.cn/ cachePolicy:0 NSTimeInterval:10000>”
其中,URL字符串为“http://www.aaa.com.cn/”,缓存方式信息为0,超时时间为10000。
应用程序调用UIWebView组件中的loadRequest方法,将上述第一请求消息作为loadRequest方法的参数,向网站服务器发起网络请求。
步骤203,应用程序监听系统组件发起的网络请求。
具体地,应用程序可以通过cache对象监听系统组件发起的网络请求。由于应用程序在初始化阶段将cache对象指定为系统默认的NSURLCache对象,且网络请求通常会访问系统默认的NSURLCache对象,因此,当系统组件发起网络请求时,该网络请求会访问cache对象,从而被应用程序监听到。
例如,网络组件中的loadRequest方法被调用,根据请求消息
“<NSURLRequest url:http://www.aaa.com.cn/ cachePolicy:0 NSTimeInterval:10000>”,发起网络请求,访问系统默认的NSURLCache对象,即步骤201中创建的cache对象,应用程序监听到该网络请求。
步骤204,当应用程序监听到系统组件发起的网络请求时,应用程序从系统组件获取第二请求消息,对该第二请求消息进行解析,得到该第二请求消息所包含的URL字符串。
其中,第二请求消息可以与第一请求消息相同,也可以与第一请求消息不同;系统组件为UIWebView组件,当UIWebView组件中的loadRequest方法访问cache对象时,应用程序监听到UIWebView组件发起的网络请求,可以接收来自UIWebView组件的第二请求消息,调用cache对象中的 cachedResponseForRequest方法,从该第二请求消息中解析出URL字符串。
例如,当应用程序从UIWebView组件获取到的第二请求消息为:
“<NSURLRequest url:http://www.aaa.com.cn/ cachePolicy:0 NSTimeInterval:10000>”时,应用程序从该第二请求消息中解析出URL字符串“http://www.aaa.com.cn/”;
当应用程序从UIWebView组件获取到的第二请求消息为:
“<NSURLRequest url:http://gongyi.qq.com/logo.png/ cachePolicy:0 NSTimeInterval:10000>”时,应用程序从该第二请求消息中解析出URL字符串“http://gongyi.qq.com/logo.png/”。
步骤205,应用程序打开预置的链接匹配文件,将该链接匹配文件的起始位置作为当前位置。
具体地,应用程序可以通过调用open方法,打开预置的链接匹配文件,将该链接匹配文件的起始位置作为当前位置。其中,链接匹配文件可以包含一行或多行链接字符串,链接字符串可以为符合预设格式的字符串。
例如,应用程序可以调用open方法,打开预置的链接匹配文件filter.txt。
步骤206,应用程序自当前位置开始,从链接匹配文件中读取一行链接字符串,将当前位置更新为该链接字符串的末尾。
具体地,应用程序可以通过调用read方法,自当前位置开始,从链接匹配文件中读取一行链接字符串,将当前位置更新为该链接字符串的末尾。
例如,应用程序从链接匹配文件filter.txt中读取到的一行链接字符串为“http://*.ad.*/*”。
步骤207,应用程序对读取到的链接字符串和解析出的URL字符串进行匹配,如果匹配成功,则执行步骤208;如果匹配失败,则执行步骤209。
具体地,应用程序可以调用MatchUrl方法,对读取到的链接字符串和解析出的URL字符串进行匹配。
例如,当应用程序解析出的URL字符串为“http://www.aaa.com.cn/”时,应用程序对读取到的链接字符串“http://*.ad.*/*”和 “http://www.aaa.com.cn/”进行匹配;
当应用程序解析出的URL字符串为“http://gongyi.qq.com/logo.png/”时,应用程序对读取到的链接字符串“http://*.ad.*/*”和  “http://gongyi.qq.com/logo.png/”进行匹配。
步骤208,应用程序生成伪装响应数据,将该伪装响应数据返回给系统组件,通过系统组件对该伪装响应数据进行显示处理,并返回步骤203。
具体他,应用程序可以根据本地资源文件封装一个伪装的Response(响应)句柄作为伪装响应数据返回给系统组件,该Response句柄用于伪装网站服务器返回的响应数据。其中,Response句柄为NSURLResponse对象的实例,可以包括头域、内容和缓存方式信息,系统组件为UIWebView组件,Response句柄中的内容为本地资源文件对应的数据内容。进一步地,应用程序可以获取与解析出的URL字符串对应的资源文件类型,根据该资源文件类型选择对应的本地资源文件,根据选择的本地资源文件生成伪装的Response句柄。
例如:应用程序生成并返回的伪装相应数据为伪装Response句柄:
“<NSURLResponse headerField:(NSDictionary)0x00128003 data:(NSData *)data cacheStoragePolicy:0>”
其中,头域为(NSDictionary)0x00128003,内容为(NSData *)data,缓存方式信息为0。
相应地,应用程序可以通过加载系统组件,显示与接收到的伪装响应数据对应的本地资源文件。
本实施例中,应用程序通过加载所述系统组件,可以显示像素为1*1的透明图片,也可以通过弹出窗口的方式,提示用户已过滤广告或恶意网页,还可以使用静态图片替换网络请求对应的动态图片、视频资源或音频资源。此外,应用程序还可以使用本地图片替换网络请求对应的源图片,使用本地视频资源替换网络请求对应的远程视频资源,使用本地音频资源替换网络请求对应的远程音频资源。
步骤209,应用程序判断当前位置是否为链接匹配文件的结束位置,如果是,则执行步骤210;否则,返回步骤206。
步骤210,应用程序判断本地缓存中是否存储有与解析出的URL字符串对应的资源文件,如果是,则执行步骤211;否则,执行步骤212。
具体地,应用程序可以调用cache对象的父类中的cachedResponseForRequest方法,即NSURLCache类中的cachedResponseForRequest方法,判断本地缓存中是否存储有与URL字符串对应的资源文件。
例如,解析出的URL字符串为“http://gongyi.qq.com/logo.png/”时,应用程序从本地缓存中搜索名称为logo的png图片。
步骤211,应用程序将本地缓存中与解析出的URL字符串对应的资源文件发送给系统组件,通过该系统组件显示该资源文件,并返回步骤203。
其中,系统组件为UIWebView组件。
例如,URL字符串为“http://gongyi.qq.com/logo.png/”时,应用程序将本地缓存中存储的名称为logo的png图片发送给UIWebView组件,UIWebView组件显示该图片。
步骤212,应用程序向网站服务器发送第二请求消息,接收网站服务器返回的响应消息,将该响应消息发送给系统组件,并返回步骤203。
具体地,应用程序可以调用cache对象的父类中的cachedResponseForRequest方法,即NSURLCache类中的cachedResponseForRequest方法,得到该cachedResponseForRequest方法返回的NSCachedURLResponse对象,即响应消息。应用程序将该响应消息返回给系统组件。
其中,网站服务器返回的响应消息可以为响应数据,响应数据可以包含资源类型、资源大小、资源名称和资源数据,该资源数据可以为二进制数据。
相应地,应用程序将接收到的响应数据返回给系统组件后,可以通过该系统组件显示相应的资源文件,系统组件为UIWebView组件。
例如,网站服务器返回的响应数据为“资源类型=png图片,资源大小=20KB,资源名称= logo,资源数据=1011110110001111010”时,应用程序通过UIWebView组件显示名称为logo的png图片。
此外,网站服务器返回的响应消息还可以为网页数据,该网页数据中可以包含一个或多个资源文件地址。
相应地,应用程序将接收到的网页数据返回给系统组件后,系统组件可以对接收到的网页数据进行解析,得到该网页数据中的资源文件地址,根据该资源文件地址生成相应的请求消息,并使用该请求消息发起网络请求。
具体地,系统组件可以使用的loadHTMLString方法,对接收到的网页数据进行解析,得到该网页数据中的资源文件地址。进一步地,系统组件根据解析得到的资源文件地址生成相应的请求消息,并使用该请求消息发起网络请求,访问系统默认的NSURLCache对象,即步骤201中创建的cache对象。
其中,系统组件生成的请求消息为NSURLRequest对象的实例,可以包括URL字符串、缓存方式信息和超时时间,系统组件为UIWebView组件。
例如,系统组件从接收到的网页数据中解析得到资源文件地址“http://gongyi.qq.com/logo.png/”,生成的请求消息为:
“<NSURLRequest url:http://gongyi.qq.com/logo.png/ cachePolicy:0 NSTimeInterval:10000>”。
相应地,应用程序通过cache对象监听到系统组件发起的网络请求后,获取来自该系统组件的第二请求消息,即系统组件根据资源文件地址生成的请求消息,并对该第二请求消息进行处理,即执行本发明实施例中的步骤204至步骤212的操作。
需要说明的是,本发明实施例中的步骤207中,应用程序使用读取到的链接字符串分别与解析出的URL字符串进行匹配的步骤,可细化为图3所示的流程,包括以下步骤:
步骤301,应用程序对读取到的链接字符串进行解析,得到有效字符串。
具体地,应用程序可以将链接字符串中的占位符去除,解析得到链接字符串中的有效字符串。
例如,读取到的链接字符串为“http://*.ad.*/*”,去除该链接字符串中的占位符后,得到有效字符串“ad”。
步骤302,应用程序提取有效字符串的首字符。
例如,有效字符串为“ad”时,提取有效字符串的首字符“a”。
步骤303,应用程序对当前遍历下标进行初始化。
本发明实施例中,应用程序可以将当前遍历下标初始化为0。
步骤304,应用程序根据当前遍历下标,从URL字符串中提取对应的字符。
其中,URL字符串中,不同的字符分别对应不同的遍历下标,第一个字符串对应的遍历下标可以为0。URL字符串可以为应用程序解析出的URL字符串。
例如:URL字符串为“http://www.aaa.com.cn/”,当前遍历下标为0时,提取到的与当前遍历下标对应的字符为“h”。
步骤305,应用程序判断提取到的字符是否为结束符,如果是,则确定读取到的链接字符串与URL字符串匹配失败;否则,执行步骤306。
例如,提取到的字符为“h”时,应用程序判断提取到的字符不是结束符。
步骤306,应用程序判断提取到的字符是否与有效字符串的首字符相同,如果相同,则执行步骤308;否则,执行步骤307。
例如,提取到的字符为“h”,有效字符串的首字符为“a”时,应用程序判断提取到的字符与有效字符串的首字符不同。
步骤307,应用程序对当前遍历下标进行更新,并返回步骤304。
本发明实施例中,应用程序可以将当前遍历下标加1。
步骤308,应用程序从当前遍历下标对应的字符开始,从URL字符串中截取与有效字符串长度相等的字符串。
例如,URL字符串为“http://www.aaa.com.cn/”,提取到的字符为第一个“a”,有效字符串的首字符为“a”,有效字符串的长度为2时,应用程序从URL字符串中截取的字符串为“aa”。
步骤309,应用程序判断截取的字符串是否与有效字符串相同,如果是,则确定读取到的链接字符串与URL字符串匹配成功;否则,返回步骤307。
例如,当截取的字符串为“aa”,有效字符串为“ad”时,应用程序判断截取的字符串与有效字符串不同。
需要说明的是,在本发明的其他实施方式中,应用程序还可以按照读取到的链接字符串中的通配符,将读取到的链接字符串拆分为多个子字符串,从拆分得到的子字符串中选取一个未被处理过的子字符串,判断选取的子字符串是否包含在解析出的URL字符串中,如果是,则确定所述读取到的链接字符串与解析出的URL字符串匹配成功;否则,将选取的子字符串标记为已被处理过,并判断上述拆分得到的子字符串是否均被处理过,如果是,则确定所述读取到的链接字符串与所述解析出的URL字符串匹配失败;否则,继续选取一个未被处理过的字符串,并判断选取的子字符串是否包含在解析出的URL字符串中,直到确认匹配成功或者确认根据读取到的链接字符串拆分得到的子字符串均被处理过。
此外,应用程序还可以获取与读取到的链接字符串对应的正则表达式,调用NSPredicate类,对该正则表达式和解析出的URL字符串进行匹配,将匹配结果作为读取到的链接字符串与解析出的URL字符串之间的匹配结果。
本发明实施例中,通过对系统默认的URL缓存对象进行子类化处理,将网 络请求的控制权从iOS系统转移到应用程序;应用程序使用链接字符串,对从请求消息中解析出的URL字符串进行匹配,并在匹配成功时,生成伪装响应数据,并根据该伪装响应数据进行显示,能够实现对网页广告或恶意网页的拦截,降低对系统资源和网络资源的占用,提高系统的运行速度以及用户访问网络的速度和流畅度,减少对设备电量的消耗。
如图4所示,为本发明实施例中的一种iOS设备的结构示意图,包括应用程序400和系统组件500,其中,应用程序400包括:
初始化模块410,用于在应用程序400启动时,创建统一资源定位符缓存类的子类对象,将所述子类对象指定为统一资源定位符缓存对象,所述统一资源定位符缓存对象为所述系统组件发起网络请求时访问的对象;
请求模块420,用于获取用户输入的超文本传输协议地址,根据所述超文本传输协议地址生成第一请求消息,将所述第一请求消息发送给所述系统组件;
具体地,上述请求模块420,具体用于获取用户输入的超文本传输协议地址,将所述超文本传输协议地址作为所述第一请求消息中的统一资源定位符字符串,生成所述第一请求消息,根据所述第一请求消息调用所述系统组件中的方法,向所述网站服务器发起网络请求,所述第一请求消息包括统一资源定位符字符串、缓存方式信息和超时时间。
监听模块430,用于通过初始化模块410创建的所述子类对象,监听所述系统组件发起的网络请求;
解析模块440,用于在监听模块430监听到所述系统组件发起的网络请求时,从所述系统组件获取第二请求消息,对所述第二请求消息进行解析,得到所述第二请求消息所包含的统一资源定位符字符串;
匹配模块450,用于使用链接字符串对解析模块440解析出的统一资源定位符字符串进行匹配;
伪装模块460,用于在匹配模块450匹配成功时,生成伪装响应数据,将所述伪装响应数据返回给所述系统组件,通过所述系统组件对所述伪装响应数据进行显示处理;
第一响应模块470,用于在匹配模块450匹配失败时,向网站服务器发送所述第二请求消息,接收所述网站服务器返回的响应消息,将所述响应消息发送 给所述系统组件。
其中,网站服务器返回的响应消息可以为响应数据,该响应数据包含资源类型、资源大小、资源名称和资源数据;
相应地,第一响应模块470,还用于通过所述系统组件,显示与所述响应数据对应的资源文件。
进一步地,上述iOS设备,还可以包括:
判断模块480,用于在匹配模块450匹配失败时,判断本地缓存中是否存储有与解析模块440解析出的统一资源定位符字符串对应的资源文件;
第二响应模块490,用于在判断模块480判断出所述本地缓存中存储有与所述解析出的统一资源定位符字符串对应的资源文件时,将所述本地缓存中与所述解析出的统一资源定位符字符串对应的资源文件发送给所述系统组件,通过所述系统组件显示所述资源文件;
相应地,上述第一响应模块470,具体用于在判断模块480判断出所述本地缓存中没有存储与所述解析出的统一资源定位符字符串对应的资源文件时,向所述网站服务器发送所述第二请求消息,接收所述网站服务器返回的响应消息,将所述响应消息发送给所述系统组件。
在上述iOS设备中,伪装模块460,可以包括:
生成子模块461,用于在匹配模块450匹配成功时,根据本地资源文件生成一个伪装的响应句柄,所述响应句柄用于伪装所述网站服务器返回的响应数据,所述响应句柄包括头域、内容和缓存方式信息;
具体地,上述生成子模块461,具体用于获取与所述解析出的统一资源定位符字符串对应的资源文件类型,根据所述资源文件类型,选择对应的本地资源文件,根据所述本地资源文件生成一个伪装的响应句柄;
发送子模块462,用于将生成子模块461生成的所述响应句柄作为所述伪装响应数据返回给所述系统组件;
显示子模块463,用于通过加载所述系统组件,显示与所述伪装响应数据对应的本地资源文件。
进一步地,匹配模块450,可以具体包括读取子模块451、匹配子模块452和判断子模块453,其中,
读取子模块451,用于从预置的链接匹配文件的起始位置开始,读取一行链 接字符串,将当前位置设置为读取到的链接字符串的末尾;在被判断子模块453触发时,自当前位置开始,从所述链接匹配文件中读取一行链接字符串,将当前位置更新为读取到的链接字符串的末尾;
匹配子模块452,用于对读取子模块451读取到的链接字符串和所述解析模块解析出的统一资源定位符字符串进行匹配,如果所述读取到的链接字符串与所述解析出的统一资源定位符字符串匹配成功,则触发伪装模块460;如果所述读取到的链接字符串和所述解析出的统一资源定位符字符串匹配失败,则触发判断子模块453;
判断子模块453,用于判断当前位置是否为所述链接匹配文件的结束位置,如果是,则触发第一响应模块470;否则,触发读取子模块451。
具体地,匹配子模块452,可以具体用于执行以下操作:
B1、对所述读取到的链接字符串进行解析,得到有效字符串,提取所述有效字符串的首字符,并对当前遍历下标进行初始化;
B2、根据所述当前遍历下标,从所述解析出的统一资源定位符字符串中提取对应的字符,判断提取到的字符是否为结束符,如果是,则确定所述读取到的链接字符串与所述解析出的统一资源定位符字符串匹配失败,触发判断子模块453;否则,执行步骤B3;
B3、判断所述提取到的字符是否与所述有效字符串的首字符相同,如果是,则执行步骤B5;否则,执行步骤B4;
B4、对所述当前遍历下标进行更新,并返回步骤B2;
B5、从所述当前遍历下标对应的字符开始,从所述解析出的统一资源定位符字符串中截取与所述有效字符串长度相等的字符串,判断截取的字符串是否与所述有效字符串相同,如果不同,则返回步骤B4;如果相同,则确定所述读取到的链接字符串与所述解析出的统一资源定位符字符串匹配成功,触发所述伪装模块460。
其中,匹配子模块452对当前遍历下标进行初始化,具体为:匹配子模块452将所述当前遍历下标初始化为0;
匹配子模块452对所述当前遍历下标进行更新,具体为:匹配子模块452将所述当前遍历下标加1。
另外,上述匹配子模块452,还可以具体用于执行以下操作:
C1、按照所述读取到的链接字符串中的通配符,将所述读取到的链接字符串拆分为多个子字符串;
C2、从拆分得到的子字符串中选取一个未被处理过的子字符串;
C3、判断选取的子字符串是否包含在所述解析出的统一资源定位符字符串中,如果是,则确定所述读取到的链接字符串与所述解析出的统一资源定位符字符串匹配成功,触发所述伪装模块460;否则,将所述选取的子字符串标记为已被处理过,并执行步骤C4;
C4、判断上述拆分得到的子字符串是否均被处理过,如果是,则确定所述读取到的链接字符串与所述解析出的统一资源定位符字符串匹配失败,触发判断子模块453;否则,返回步骤C2。
此外,上述匹配子模块452,还可以具体用于获取与所述读取到的链接字符串对应的正则表达式,使用所述正则表达式与所述解析出的统一资源定位符字符串进行匹配。
本发明实施例中,通过对系统默认的URL缓存对象进行子类化处理,将网络请求的控制权从iOS系统转移到应用程序;应用程序使用链接字符串,对从请求消息中解析出的URL字符串进行匹配,并在匹配成功时,生成伪装响应数据,并根据该伪装响应数据进行显示,能够实现对网页广告或恶意网页的拦截,降低对系统资源和网络资源的占用,提高系统的运行速度以及用户访问网络的速度和流畅度,减少对设备电量的消耗。
结合本文中所公开的实施例描述的方法中的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

一种基于IOS设备的网页拦截方法和设备.pdf_第1页
第1页 / 共20页
一种基于IOS设备的网页拦截方法和设备.pdf_第2页
第2页 / 共20页
一种基于IOS设备的网页拦截方法和设备.pdf_第3页
第3页 / 共20页
点击查看更多>>
资源描述

《一种基于IOS设备的网页拦截方法和设备.pdf》由会员分享,可在线阅读,更多相关《一种基于IOS设备的网页拦截方法和设备.pdf(20页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103366019 A(43)申请公布日 2013.10.23CN103366019A*CN103366019A*(21)申请号 201310338264.3(22)申请日 2013.08.06G06F 17/30(2006.01)(71)申请人飞天诚信科技股份有限公司地址 100085 北京市海淀区学清路9号汇智大厦B楼17层(72)发明人陆舟 于华章(54) 发明名称一种基于iOS设备的网页拦截方法和设备(57) 摘要本发明公开一种基于iOS设备的网页拦截方法和设备,应用于包括应用程序和系统组件的iOS设备中,应用程序通过对系统默认的统一资源定位符缓存对象进行子类。

2、化处理,得到对网络请求的控制权,使用链接字符串,对从请求消息中解析出的统一资源定位符字符串进行匹配,并在匹配成功时,生成伪装响应数据,并根据该伪装响应数据进行显示,能够实现对网页广告或恶意网页的拦截,降低对系统资源和网络资源的占用,提高系统的运行速度以及用户访问网络的速度和流畅度,减少对设备电量的消耗。(51)Int.Cl.权利要求书5页 说明书10页 附图4页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书5页 说明书10页 附图4页(10)申请公布号 CN 103366019 ACN 103366019 A1/5页21.一种基于iOS设备的网页拦截方法,应用于包括应用程序。

3、和系统组件的iOS设备中,其特征在于,所述方法包括以下步骤:S1、所述应用程序启动,创建统一资源定位符缓存类的子类对象,将所述子类对象指定为统一资源定位符缓存对象,所述统一资源定位符缓存对象为所述系统组件发起网络请求时访问的对象;S2、所述应用程序获取用户输入的超文本传输协议地址,根据所述超文本传输协议地址生成第一请求消息,将所述第一请求消息发送给所述系统组件;S3、所述应用程序通过所述子类对象,监听所述系统组件发起的网络请求;S4、当所述应用程序监听到所述系统组件发起的网络请求时,所述应用程序从所述系统组件获取第二请求消息,对所述第二请求消息进行解析,得到所述第二请求消息所包含的统一资源定位。

4、符字符串;S5、所述应用程序使用链接字符串对解析出的统一资源定位符字符串进行匹配,如果匹配成功,则执行步骤S6;如果匹配失败,则执行步骤S7;S6、所述应用程序生成伪装响应数据,将所述伪装响应数据返回给所述系统组件,通过所述系统组件对所述伪装响应数据进行显示处理,并返回步骤S3;S7、所述应用程序向网站服务器发送所述第二请求消息,接收所述网站服务器返回的响应消息,将所述响应消息发送给所述系统组件,并返回步骤S3。2.如权利要求1所述的方法,其特征在于,所述步骤S2,具体为:所述应用程序获取用户输入的超文本传输协议地址,将所述超文本传输协议地址作为所述第一请求消息中的统一资源定位符字符串,生成所。

5、述第一请求消息,根据所述第一请求消息调用所述系统组件中的方法,向所述网站服务器发起网络请求,所述第一请求消息包括统一资源定位符字符串、缓存方式信息和超时时间。3.如权利要求1所述的方法,其特征在于,所述步骤S5,具体包括:A1、所述应用程序从预置的链接匹配文件的起始位置开始,读取一行链接字符串,将当前位置设置为读取到的链接字符串的末尾;A2、所述应用程序对所述读取到的链接字符串和解析出的统一资源定位符字符串进行匹配,如果所述读取到的链接字符串与所述解析出的统一资源定位符字符串匹配成功,则执行步骤S6;如果所述读取到的链接字符串和所述解析出的统一资源定位符字符串匹配失败,则执行步骤 A3;A3、。

6、所述应用程序判断当前位置是否为所述链接匹配文件的结束位置,如果是,则执行步骤S7;否则,执行步骤A4;A4、所述应用程序自当前位置开始,从所述链接匹配文件中读取一行链接字符串,将当前位置更新为读取到的链接字符串的末尾,并返回步骤A2。4.如权利要求3所述的方法,其特征在于,所述步骤A2,具体包括:B1、所述应用程序对所述读取到的链接字符串进行解析,得到有效字符串,提取所述有效字符串的首字符,并对当前遍历下标进行初始化;B2、所述应用程序根据所述当前遍历下标,从所述解析出的统一资源定位符字符串中提取对应的字符,判断提取到的字符是否为结束符,如果是,则确定所述读取到的链接字符串与所述解析出的统一资。

7、源定位符字符串匹配失败,执行步骤A3;否则,执行步骤B3;权 利 要 求 书CN 103366019 A2/5页3B3、所述应用程序判断所述提取到的字符是否与所述有效字符串的首字符相同,如果是,则执行步骤B5;否则,执行步骤B4;B4、所述应用程序对所述当前遍历下标进行更新,并返回步骤B2;B5、所述应用程序从所述当前遍历下标对应的字符开始,从所述解析出的统一资源定位符字符串中截取与所述有效字符串长度相等的字符串,判断截取的字符串是否与所述有效字符串相同,如果不同,则返回步骤B4;如果相同,则确定所述读取到的链接字符串与所述解析出的统一资源定位符字符串匹配成功,执行步骤S6。5.如权利要求4所。

8、述的方法,其特征在于,所述应用程序对当前遍历下标进行初始化,具体为:所述应用程序将当前遍历下标初始化为0;所述应用程序对所述当前遍历下标进行更新,具体为:所述应用程序将所述当前遍历下标加1。6.如权利要求3所述的方法,其特征在于,所述步骤A2,具体包括:C1、所述应用程序按照所述读取到的链接字符串中的通配符,将所述读取到的链接字符串拆分为多个子字符串;C2、所述应用程序从拆分得到的子字符串中选取一个未被处理过的子字符串;C3、所述应用程序判断选取的子字符串是否包含在所述解析出的统一资源定位符字符串中,如果是,则确定所述读取到的链接字符串与所述解析出的统一资源定位符字符串匹配成功,执行步骤S6;。

9、否则,将所述选取的子字符串标记为已被处理过,并执行步骤C4;C4、所述应用程序判断所述拆分得到的子字符串是否均被处理过,如果是,则确定所述读取到的链接字符串与所述解析出的统一资源定位符字符串匹配失败,执行步骤A3;否则,返回步骤C2。7.如权利要求3所述的方法,其特征在于,所述应用程序对所述读取到的链接字符串和解析出的统一资源定位符字符串进行匹配,具体为:所述应用程序获取与所述读取到的链接字符串对应的正则表达式,使用所述正则表达式与所述解析出的统一资源定位符字符串进行匹配。8.如权利要求1所述的方法,其特征在于,所述应用程序生成伪装响应数据,将所述伪装响应数据返回给所述系统组件,具体为:所述应。

10、用程序根据本地资源文件生成一个伪装的响应句柄,将所述响应句柄作为所述伪装响应数据返回给所述系统组件,所述响应句柄用于伪装所述网站服务器返回的响应数据,所述响应句柄包括头域、内容和缓存方式信息;所述应用程序通过所述系统组件对所述伪装响应数据进行显示处理,具体为:所述应用程序通过加载所述系统组件,显示与所述伪装响应数据对应的本地资源文件。9.如权利要求8所述的方法,其特征在于,所述应用程序根据本地资源文件生成一个伪装的响应句柄,具体为:所述应用程序获取与所述解析出的统一资源定位符字符串对应的资源文件类型,根据所述资源文件类型,选择对应的本地资源文件,根据所述本地资源文件生成一个伪装的响应句柄。权 。

11、利 要 求 书CN 103366019 A3/5页410.如权利要求1所述的方法,其特征在于,所述步骤S7,具体包括:当所述应用程序判断出本地缓存中没有存储与所述解析出的统一资源定位符字符串对应的资源文件时,所述应用程序向所述网站服务器发送所述第二请求消息,接收所述网站服务器返回的响应消息,将所述响应消息发送给所述系统组件;所述步骤S7之前,还包括:所述应用程序判断所述本地缓存中是否存储有与所述解析出的统一资源定位符字符串对应的资源文件。11.如权利要求10所述的方法,其特征在于,所述应用程序判断所述本地缓存中是否存储有与所述解析出的统一资源定位符字符串对应的资源文件之后,还包括:当所述应用程。

12、序判断出本地缓存中存储有与所述解析出的统一资源定位符字符串对应的资源文件时,所述应用程序将所述本地缓存中与所述解析出的统一资源定位符字符串对应的资源文件发送给所述系统组件,通过所述系统组件显示所述资源文件,并返回步骤S3。12.如权利要求1所述的方法,其特征在于,所述网站服务器返回的响应消息为响应数据,所述响应数据包含资源类型、资源大小、资源名称和资源数据;所述应用程序接收所述网站服务器返回的响应数据,将所述响应数据发送给所述系统组件之后,还包括:所述应用程序通过所述系统组件,显示与所述响应数据对应的资源文件。13.一种iOS设备,包括应用程序和系统组件,其特征在于,所述应用程序包括:初始化模。

13、块,用于在所述应用程序启动时,创建统一资源定位符缓存类的子类对象,将所述子类对象指定为统一资源定位符缓存对象,所述统一资源定位符缓存对象为所述系统组件发起网络请求时访问的对象;请求模块,用于获取用户输入的超文本传输协议地址,根据所述超文本传输协议地址生成第一请求消息,将所述第一请求消息发送给所述系统组件;监听模块,用于通过所述初始化模块创建的所述子类对象,监听所述系统组件发起的网络请求;解析模块,用于在所述监听模块监听到所述系统组件发起的网络请求时,从所述系统组件获取第二请求消息,对所述第二请求消息进行解析,得到所述第二请求消息所包含的统一资源定位符字符串;匹配模块,用于使用链接字符串对所述解。

14、析模块解析出的统一资源定位符字符串进行匹配;伪装模块,用于在所述匹配模块匹配成功时,生成伪装响应数据,将所述伪装响应数据返回给所述系统组件,通过所述系统组件对所述伪装响应数据进行显示处理;第一响应模块,用于在所述匹配模块匹配失败时,向网站服务器发送所述第二请求消息,接收所述网站服务器返回的响应消息,将所述响应消息发送给所述系统组件。14.如权利要求13所述的iOS设备,其特征在于,所述请求模块,具体用于获取用户输入的超文本传输协议地址,将所述超文本传输协议地址作为所述第一请求消息中的统一资源定位符字符串,生成所述第一请求消息,根据所述第一请求消息调用所述系统组件中的方法,向所述网站服务器发起网。

15、络请求,所述第权 利 要 求 书CN 103366019 A4/5页5一请求消息包括统一资源定位符字符串、缓存方式信息和超时时间。15.如权利要求13所述的iOS设备,其特征在于,所述匹配模块,具体包括读取子模块、匹配子模块和判断子模块,其中,所述读取子模块,用于从预置的链接匹配文件的起始位置开始,读取一行链接字符串,将当前位置设置为读取到的链接字符串的末尾;在被所述判断子模块触发时,自当前位置开始,从所述链接匹配文件中读取一行链接字符串,将当前位置更新为读取到的链接字符串的末尾;所述匹配子模块,用于对所述读取子模块读取到的链接字符串和所述解析模块解析出的统一资源定位符字符串进行匹配,如果所述。

16、读取到的链接字符串与所述解析出的统一资源定位符字符串匹配成功,则触发所述伪装模块;如果所述读取到的链接字符串和所述解析出的统一资源定位符字符串匹配失败,则触发所述判断子模块;所述判断子模块,用于判断当前位置是否为所述链接匹配文件的结束位置,如果是,则触发所述第一响应模块;否则,触发所述读取子模块。16.如权利要求15所述的iOS设备,其特征在于,所述匹配子模块,具体用于执行以下操作:B1、对所述读取到的链接字符串进行解析,得到有效字符串,提取所述有效字符串的首字符,并对当前遍历下标进行初始化;B2、根据所述当前遍历下标,从所述解析出的统一资源定位符字符串中提取对应的字符,判断提取到的字符是否为。

17、结束符,如果是,则确定所述读取到的链接字符串与所述解析出的统一资源定位符字符串匹配失败,触发所述判断子模块;否则,执行步骤B3;B3、判断所述提取到的字符是否与所述有效字符串的首字符相同,如果是,则执行步骤B5;否则,执行步骤B4;B4、对所述当前遍历下标进行更新,并返回步骤B2;B5、从所述当前遍历下标对应的字符开始,从所述解析出的统一资源定位符字符串中截取与所述有效字符串长度相等的字符串,判断截取的字符串是否与所述有效字符串相同,如果不同,则返回步骤B4;如果相同,则确定所述读取到的链接字符串与所述解析出的统一资源定位符字符串匹配成功,触发所述伪装模块。17.如权利要求16所述的iOS设备。

18、,其特征在于,所述匹配子模块对当前遍历下标进行初始化,具体为:所述匹配子模块将当前遍历下标初始化为0;所述匹配子模块对所述当前遍历下标进行更新,具体为:所述匹配子模块将所述当前遍历下标加1。18.如权利要求15所述的iOS设备,其特征在于,所述匹配子模块,具体用于执行以下操作:C1、按照所述读取到的链接字符串中的通配符,将所述读取到的链接字符串拆分为多个子字符串;C2、从拆分得到的子字符串中选取一个未被处理过的子字符串;C3、判断选取的子字符串是否包含在所述解析出的统一资源定位符字符串中,如果是,则确定所述读取到的链接字符串与所述解析出的统一资源定位符字符串匹配成功,触发所权 利 要 求 书C。

19、N 103366019 A5/5页6述伪装模块;否则,将所述选取的子字符串标记为已被处理过,并执行步骤C4;C4、判断根据所述拆分得到的子字符串是否均被处理过,如果是,则确定所述读取到的链接字符串与所述解析出的统一资源定位符字符串匹配失败,触发所述判断子模块;否则,返回步骤C2。19.如权利要求15所述的iOS设备,其特征在于,所述匹配子模块,具体用于获取与所述读取到的链接字符串对应的正则表达式,使用所述正则表达式与所述解析出的统一资源定位符字符串进行匹配。20.如权利要求13所述的iOS设备,其特征在于,所述伪装模块,包括:生成子模块,用于在所述匹配模块匹配成功时,根据本地资源文件生成一个伪。

20、装的响应句柄,所述响应句柄用于伪装所述网站服务器返回的响应数据,所述响应句柄包括头域、内容和缓存方式信息;发送子模块,用于将所述生成子模块生成的所述响应句柄作为所述伪装响应数据返回给所述系统组件;显示子模块,用于通过加载所述系统组件,显示与所述伪装响应数据对应的本地资源文件。21.如权利要求20所述的iOS设备,其特征在于,所述生成子模块,具体用于获取与所述解析出的统一资源定位符字符串对应的资源文件类型,根据所述资源文件类型,选择对应的本地资源文件,根据所述本地资源文件生成一个伪装的响应句柄。22.如权利要求13所述的iOS设备,其特征在于,还包括:判断模块,用于在所述匹配模块匹配失败时,判断。

21、本地缓存中是否存储有与所述解析出的统一资源定位符字符串对应的资源文件;所述第一响应模块,具体用于在所述判断模块判断出所述本地缓存中没有存储与所述解析出的统一资源定位符字符串对应的资源文件时,向所述网站服务器发送所述第二请求消息,接收所述网站服务器返回的响应消息,将所述响应消息发送给所述系统组件。23.如权利要求22所述的iOS设备,其特征在于,还包括:第二响应模块,用于在所述判断模块判断出所述本地缓存中存储有与所述解析出的统一资源定位符字符串对应的资源文件时,将所述本地缓存中与所述解析出的统一资源定位符字符串对应的资源文件发送给所述系统组件,通过所述系统组件显示所述资源文件。24.如权利要求1。

22、3所述的iOS设备,其特征在于,所述网站服务器返回的响应消息为响应数据,所述响应数据包含资源类型、资源大小、资源名称和资源数据;所述第一响应模块,还用于通过所述系统组件,显示与所述响应数据对应的资源文件。权 利 要 求 书CN 103366019 A1/10页7一种基于 iOS 设备的网页拦截方法和设备技术领域0001 本发明涉及计算机技术领域,特别涉及一种基于iOS设备的网页拦截方法和设备。背景技术0002 随着互联网的迅猛发展,iOS(苹果研发操作系统)设备的普及率也日益提高。iOS设备是使用iOS作为其操作系统的设备,包括iPhone、iPad、iPod Touch以及Apple TV等。

23、产品。用户在使用iOS设备中的网页浏览器访问网页时,通常会在不知情的情况下触发预置的网页广告或者恶意网页。其中,网页广告通过使用网站上的广告横幅、文本链接和多媒体等方法,将广告信息通过网络传递到互联网用户。0003 发明人在实现本发明的过程中,发现现有技术至少存在以下缺陷:0004 网站上预置的网页广告或者恶意网页被触发后,会占用系统资源和网络资源,降低系统的运行速度以及用户访问网络的速度和流畅度;对于移动设备而言,网页广告和恶意网页还会消耗设备的电量。此外,恶意网页被触发后,还会向客户端植入病毒,实现对客户端的监听,从客户端中盗取通信录、用户个人信息等隐私信息,甚至对客户端以及使用该客户端的。

24、用户进行定位,带来巨大的安全隐患。发明内容0005 本发明提供了一种基于iOS设备的网页拦截方法和设备,以解决现有技术中由于触发网页广告或恶意网页而导致资源被占用的问题。0006 本发明提供了一种基于iOS设备的网页拦截方法,应用于包括应用程序和系统组件的iOS设备中,所述方法包括以下步骤:0007 S1、所述应用程序启动,创建统一资源定位符缓存类的子类对象,将所述子类对象指定为统一资源定位符缓存对象,所述统一资源定位符缓存对象为所述系统组件发起网络请求时访问的对象;0008 S2、所述应用程序获取用户输入的超文本传输协议地址,根据所述超文本传输协议地址生成第一请求消息,将所述第一请求消息发送。

25、给所述系统组件;0009 S3、所述应用程序通过所述子类对象,监听所述系统组件发起的网络请求;0010 S4、当所述应用程序监听到所述系统组件发起的网络请求时,所述应用程序从所述系统组件获取第二请求消息,对所述第二请求消息进行解析,得到所述第二请求消息所包含的统一资源定位符字符串;0011 S5、所述应用程序使用链接字符串对解析出的统一资源定位符字符串进行匹配,如果匹配成功,则执行步骤S6;如果匹配失败,则执行步骤S7;0012 S6、所述应用程序生成伪装响应数据,将所述伪装响应数据返回给所述系统组件,通过所述系统组件对所述伪装响应数据进行显示处理,并返回步骤S3;0013 S7、所述应用程序。

26、向网站服务器发送所述第二请求消息,接收所述网站服务器返说 明 书CN 103366019 A2/10页8回的响应消息,将所述响应消息发送给所述系统组件,并返回步骤S3。0014 本发明还提供了一种iOS设备,包括应用程序和系统组件,所述应用程序包括:0015 初始化模块,用于在所述应用程序启动时,创建统一资源定位符缓存类的子类对象,将所述子类对象指定为统一资源定位符缓存对象,所述统一资源定位符缓存对象为所述系统组件发起网络请求时访问的对象;0016 请求模块,用于获取用户输入的超文本传输协议地址,根据所述超文本传输协议地址生成第一请求消息,将所述第一请求消息发送给所述系统组件;0017 监听模。

27、块,用于通过所述初始化模块创建的所述子类对象,监听所述系统组件发起的网络请求;0018 解析模块,用于在所述监听模块监听到所述系统组件发起的网络请求时,从所述系统组件获取第二请求消息,对所述第二请求消息进行解析,得到所述第二请求消息所包含的统一资源定位符字符串;0019 匹配模块,用于使用链接字符串对所述解析模块解析出的统一资源定位符字符串进行匹配;0020 伪装模块,用于在所述匹配模块匹配成功时,生成伪装响应数据,将所述伪装响应数据返回给所述系统组件,通过所述系统组件对所述伪装响应数据进行显示处理;0021 第一响应模块,用于在所述匹配模块匹配失败时,向网站服务器发送所述第二请求消息,接收所。

28、述网站服务器返回的响应消息,将所述响应消息发送给所述系统组件。0022 本发明达到的有益效果:通过对系统默认的URL(Uniform/Universal Resource Locator,统一资源定位符)缓存对象进行子类化处理,将网络请求的控制权从iOS系统转移到应用程序;应用程序使用链接字符串,对从请求消息中解析出的URL字符串进行匹配,并在匹配成功时,生成伪装响应数据,并根据该伪装响应数据进行显示,能够实现对网页广告或恶意网页的拦截,降低对系统资源和网络资源的占用,提高系统的运行速度以及用户访问网络的速度和流畅度,减少对设备电量的消耗。附图说明0023 图1为本发明实施例中的iOS设备的结。

29、构示意图;0024 图2为本发明实施例中的一种基于iOS设备的网页拦截方法的流程图;0025 图3为本发明实施例中的应用程序使用链接字符串进行匹配的流程图;0026 图4为本发明实施例中的一种iOS设备的结构示意图。具体实施方式0027 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。0028 本发明实施例提供了一种基于iOS设备的网页拦截方法,应用于包括应用程序和系统组件的iOS设备。

30、中,如图1所示,应用程序在初始化阶段创建URL缓存类的子类对象,将该子类对象指定为URL缓存对象,该URL缓存对象为系统默认的用于缓存数据的对象,在说 明 书CN 103366019 A3/10页9网络请求发起时被访问。0029 例如,URL缓存类为NSURLCache类时,可以创建NSURLCache类的子类,即,FTURLCache类,并创建FTURLCache类的对象cache,将cache对象指定为系统默认的NSURLCache对象。由于SDK(Software Development Kit,软件开发工具包)中的网络请求通常会访问系统默认的NSURLCache对象,将cache对象指。

31、定为系统默认的NSURLCache对象后,SDK中的网络请求会访问cache对象,从而使得cache对象能够监听和处理网络请求。0030 应用程序启动后,可以根据用户输入的HTTP(HyperText Transfer Protocol,超文本传输协议)地址生成第一请求消息,将该第一请求消息发送给系统组件,通过该系统组件发起网络请求;系统组件访问应用程序创建的URL缓存类的子类对象,例如cache对象;上述子类对象从系统组件获取第二请求消息,并向系统组件返回响应消息;系统组件根据该响应消息进行显示。通过创建和指定URL缓存类的子类对象,能够将网络请求的控制权从iOS系统转移到应用程序,通过应用。

32、程序对请求消息和网页数据进行处理,实现对网页广告和恶意网页的拦截。0031 基于上述iOS设备,本发明实施例中的网页拦截方法,如图2所示,包括以下步骤:0032 步骤201,应用程序启动,并执行初始化操作。0033 具体地,在iOS系统中,系统组件通常将缓存的数据存储到系统默认的NSURLCache对象。NSURLCache对象为全局共享的对象,SDK中的网络请求基本上都会访问NSURLCache对象,NSURLCache对象中的cachedResponseForReques方法将NSURLRequest对象映射到NSCachedURLResponse对象,并返回NSCachedURLResp。

33、onse对象。其中,系统组件可以为UIWebView组件。0034 基于上述机制,本实施例可以定义NSURLCache类的子类,即,FTURLCache类,在FTURLCache类中重写cachedResponseForRequest方法,并在应用程序启动时,在AppDelegate入口处进入以下方法:0035 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions0036 在上述方法中,可以创建FTURLCache类的对象cache。

34、,通过调用setSharedURLCache方法,将创建的cache对象指定为系统默认的NSURLCache对象,添加到系统中。0037 由于SDK中的网络请求通常会访问系统默认的NSURLCache对象,将cache对象指定为系统默认的缓存对象后,SDK中的网络请求会访问cache对象,从而使得cache对象能够监听和处理网络请求。0038 步骤202,应用程序获取用户输入的HTTP地址,根据该HTTP地址生成第一请求消息,将该第一请求消息发送给系统组件,通过该系统组件向网站服务器发起网络请求。0039 具体地,应用程序可以获取用户输入的HTTP地址,将该HTTP地址作为第一请求消息中的UR。

35、L字符串,生成第一请求消息,根据该第一请求消息调用系统组件中的方法,向网站服务器发起网络请求。0040 其中,系统组件为UIWebView组件,第一请求消息为NSURLRequest对象的实例,可以包括URL字符串、缓存方式信息和超时时间。说 明 书CN 103366019 A4/10页100041 例如,应用程序获取到的HTTP地址为“”时,生成的第一请求消息为:0042 “”0043 其中,URL字符串为“http:/ 应用程序调用UIWebView组件中的loadRequest方法,将上述第一请求消息作为loadRequest方法的参数,向网站服务器发起网络请求。0045 步骤203,应。

36、用程序监听系统组件发起的网络请求。0046 具体地,应用程序可以通过cache对象监听系统组件发起的网络请求。由于应用程序在初始化阶段将cache对象指定为系统默认的NSURLCache对象,且网络请求通常会访问系统默认的NSURLCache对象,因此,当系统组件发起网络请求时,该网络请求会访问cache对象,从而被应用程序监听到。0047 例如,网络组件中的loadRequest方法被调用,根据请求消息0048 “”,发起网络请求,访问系统默认的NSURLCache对象,即步骤201中创建的cache对象,应用程序监听到该网络请求。0049 步骤204,当应用程序监听到系统组件发起的网络请求。

37、时,应用程序从系统组件获取第二请求消息,对该第二请求消息进行解析,得到该第二请求消息所包含的URL字符串。0050 其中,第二请求消息可以与第一请求消息相同,也可以与第一请求消息不同;系统组件为UIWebView组件,当UIWebView组件中的loadRequest方法访问cache对象时,应用程序监听到UIWebView组件发起的网络请求,可以接收来自UIWebView组件的第二请求消息,调用cache对象中的cachedResponseForRequest方法,从该第二请求消息中解析出URL字符串。0051 例如,当应用程序从UIWebView组件获取到的第二请求消息为:0052 “”时。

38、,应用程序从该第二请求消息中解析出URL字符串“http:/ 当应用程序从UIWebView组件获取到的第二请求消息为:0054 “”时,应用程序从该第二请求消息中解析出URL字符串“http:/ 步骤205,应用程序打开预置的链接匹配文件,将该链接匹配文件的起始位置作为当前位置。0056 具体地,应用程序可以通过调用open方法,打开预置的链接匹配文件,将该链接匹配文件的起始位置作为当前位置。其中,链接匹配文件可以包含一行或多行链接字符串,链接字符串可以为符合预设格式的字符串。0057 例如,应用程序可以调用open方法,打开预置的链接匹配文件filter.txt。0058 步骤206,应用程序自当前位置开始,从链接匹配文件中读取一行链接字符串,将说 明 书CN 103366019 A10。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1