URL过滤

就是网址过滤。把不安全的、少儿不宜的、政治的东西过滤掉,访问这些网址就会提示受限,不能访问。

一、url过滤简介

针对企业对员工上网行为的控制管理,可以采用URL过滤技术。如企业不允许研发员工在上班时间访问娱乐网站,在下班时间则允许;或者企业不允许市场人员访问研发内部网站等等。这些基于不同的用户组、不同的时间段,访问的网页有区别的问题,可以采用URL过滤技术实现。

URL过滤功能可以归纳为3大类:

黑白名单功能:如把钓鱼网站、黄色网站......列入黑名单,可以保护公司内网的安全;而把一些畅通无阻的网页加入白名单,就不需要进行分类查询,提高了访问速度。

分类访问功能:对于黑白名单无法匹配的网页,采取分类查询的功能。分类可以用户自己配置,也可以向第三方的分类查询服务器进行查询,如surfcontrol的分类服务器;与第三方服务器的通信是技术难点,是TCP连接还是UDP连接,若是TCP连接,在web访问高峰期,要建多少TCP连接,是不是会超过设备负载,性能是不是会受影响,查询速度是不是会很慢;若是UDP连接,怎么处理链路拥塞情况下查询报文丢失的情况,查询超时怎么处理?总而言之,查询到分类后,可以与本地的用户组和时间段关联,判断该http请求是否该放行。

页面推送:若是被阻断的页面,需要对用户进行通知,可以采用页面推送的方式。此时,需要对发起http请求的用户推送一个页面,知道客户,访问被阻断,并且断开http请求。这里的技术难点是,如何模拟http server,给client发送一个 reset报文,并重新构造一个报文发送给客户端。涉及到报文封装,校验和计算,序列号修改。

如何从http中提取URL呢?我们知道http get请求的格式:

GET /new/tb_02.gif HTTP/1.1

Accept: */*

Referer:http://www.360doc.com/content/09/1209/10/556933_10698354.shtml

Accept-Language: zh-cn

Accept-Encoding: gzip, deflate

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; CIBA)

Host: pubimage.360doc.com

Connection: Keep-Alive

我们把 host 部分提取出来,进行 URL 过滤,过滤的时候,用什么匹配方式?可以考虑 MPSE 算法,即把要匹配的模式串先预编译成状态机,对string进行一次扫描时,进行状态跳转,因此一次扫描,就能找出所以字符串。时间复杂度为0(n);

对于一个网页中的N多资源,可以根据资源类型判断,是否需要对该 HOST 进行过滤,减少重复工作

在该特性开发过程中,碰到的问题有:

1、易用性:web页面整改:按主功能划主页面,主页面里放子功能;匹配方式整改,分为prefix, surfix, exact, obscuring;分类页面区分自定义和预定义;category, user, address,action 的配置;默认IP地址;

2、功能问题:分类查询的返回报文;页面推送中RST报文重传;

如何测出这些问题:

1、易用性:按功能模块来设计页面;

2、功能问题:多任务交互时,考虑资源修改的情况;交互复杂的地方容易出现问题;

二、url过滤技术实现

目的,避免爬虫在网络中爬行的时候遇到环,所以我们可以将爬虫爬过的网页存储下来。

储存-查找技术:

a、将访问过的url保存到数据库

数据量大后效率特别低,来一个url启动一次数据库有点大材小用

b、用HashSet将访问过的URL保存起来,只需接近O(1)的代价就可以查到一个URL是否被访问过

太消耗内存了,1亿个URL。每个URL50bit,占5G内存。

c、URL经过MD5或SHA-1等单向哈希后再保存到HashSet或数据库。

字符串经MD5处理后信息摘要只有128bit,SHA-1处理后只要160bit,所以这种方法比上面一种方法节约了好几倍的内存。

d、Bit-Map方法。建立一个BitSet,将每个URL经过一个哈希函数映射到某一位。其实也就是布隆过滤器。

在大数据处理方面,时间和空间都算是最优的

三、路由器实现url过滤

URL过滤就是禁止所有发送到某个地址或则从某个地址发过来的数据包;

  URL:统一资源定位符(URL,英语  Uniform /Universal Resource Locator 的缩写)也被称为网页地址,是因特网上标准的资源的地址(Address)。路由器设置方法如下:

1、在浏览器地址栏输入192.168.0.1登陆路由器界面,点击首页“高级设置”进入管理界面。

2、登陆路由器管理界面,点击“安全设置”―“URL过滤”,“启用”URL过滤,选择过滤模式“仅禁止”/“仅允许”,IP地址填入局域网中被控制的计算机的IP地址,填写“URL字符串”-“启用”-“保存”。

URL过滤的更多相关文章

  1. [爬虫学习笔记]Url过滤模块UrlFilter

            Url Filter则是对提取出来的URL再进行一次筛选.不同的应用筛选的标准是不一样的,比如对于baidu/google的搜索,一般不进行筛选,但是对于垂直搜索或者定向抓取的应用,那 ...

  2. Shiro配置URL过滤

      常用过滤器: anon     不需要认证 authc     需要认证 user     验证通过或RememberMe登录的都可以   URL说明: /admin?=authc      表示 ...

  3. Nutch URL过滤配置规则

    nutch网上有不少有它的源码解析,但是采集这块还是不太让人容易理解.今天终于知道怎么,弄的.现在把crawl-urlfilter.txt文件贴出来,让大家一块交流,也给自己备忘录一个. # Lice ...

  4. 利用URLScan工具过滤URL中的特殊字符(仅针对IIS6)-- 解决IIS短文件名漏洞

    IIS短文件名漏洞在windows服务器上面非常常见,也就是利用“~”字符猜解暴露短文件/文件夹名,比如,采用这种方式构造URL:http://aaa.com/abc~1/.aspx,根据IIS返回的 ...

  5. 利用URLScan工具过滤URL中的特殊字符(仅针对IIS6)

    客户公司搞安全检查,扫描出来我们之前做的系统有一个高危漏洞:IIS tilde directory enumeration,也就是利用“~”字符猜解暴露短文件/文件夹名,比如,采用这种方式构造URL: ...

  6. 大数据处理算法--Bloom Filter布隆过滤

    1. Bloom-Filter算法简介 Bloom-Filter,即布隆过滤器,1970年由Bloom中提出.它可以用于检索一个元素是否在一个集合中. Bloom Filter(BF)是一种空间效率很 ...

  7. IIS8如何安装和使用URL重写工具-URL Rewrite

    下载和安装URL Rewrite IIS8默认是没有安装URL重写工具的,必须要自己下载安装. 如果IIS上默认有安装Web平台安装程序,我们可以使用平台自动安装URL Rewrite重写工具,打开I ...

  8. IIS 无法安装URL重写模块的解决办法 UrlReWrite (.NET`SQL技术交流 群号206656202)

    下载和安装URL Rewrite IIS8默认是没有安装URL重写工具的,必须要自己下载安装. 如果IIS上默认有安装Web平台安装程序,我们可以使用平台自动安装URL Rewrite重写工具,打开I ...

  9. JS 获取字符串中的url并返回其下标索引

    //获取字符串中的url极其下标索引 function getHttpUrlArray(s) { var s1 = s.match(/http.*/); if(s1 == null) { return ...

随机推荐

  1. 如何删除mysql 主键索引

    如果一个主键是自增长的,不能直接删除该列的主键索引, 应当先取消自增长,再删除主键特性   alter table 表名 drop primary key; [如果这个主键是自增的,先取消自增长.] ...

  2. Rom Modified [Galaxy 3 Tested]

    1,Virtualbox虚拟机设置-数据空间注意这里不要勾选那个自动挂载,不然后面mount总会提示mount.vbox.. invalid argument. 2,进入ubuntu中,在终端下输入 ...

  3. PHP如何识别系统语言或浏览器语言

    preg_match('/^([a-z\-]+)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches); $lang = $matches[1]; switc ...

  4. ASP.NET数据库连接字符串的加密与解密

    ASP.NET web.config中,数据库连接字符串的加密与解密. 虽然不怎么新鲜,但相信还是有许多人不知道,好,不说废话,直接给方法:开始--->运行,输入cmd,接着输入以下内容 加密: ...

  5. 结缘mac

    还记得上一次买MacBookPro.是在去年的7月下旬,记得那次是我大学第一次买电脑,那时候刚准备開始研究android.听stormzhang以及android开发界的大佬们对mac开发androi ...

  6. HDFS源码分析心跳汇报之BPServiceActor工作线程运行流程

    在<HDFS源码分析心跳汇报之数据结构初始化>一文中,我们了解到HDFS心跳相关的BlockPoolManager.BPOfferService.BPServiceActor三者之间的关系 ...

  7. 2018年EMUI系统能力分论坛来啦

    为鼓励开发者创新,挖掘前沿创新能力的应用及服务,帮开发者打造爆款应用的同时丰富终端消费者的用户体验,由设立10亿激励基金耀星计划扶持的华为创新竞赛平台即将开启. 竞赛平台将滚动推出AI.HAG.AR. ...

  8. python实现接口测试到unittest框架集成

    接口测试是面试测试岗位基本都会问到的问题,但是对于一些刚做测试的小伙伴可能并不是很熟悉,也有可能了解接口测试,但是完全不知道接口自动化怎么做.下面我们大概介绍一下. 首先我们需要知道接口自动化测试的目 ...

  9. 关于ejabberd限制单点登录

    ejabberd 是对xmpp协议的完全实现,那么单纯的ejabberd是不提供该功能限制的,但是从我们的xmpp协议则可以完全的解决这个问题,我们通过jid对它进行限制,下面可以看一下jid的解释: ...

  10. redis问题接囧办法及经验

    转自:https://my.oschina.net/freegeek/blog/324410 1.redis持久化,来自官方说明 如何选择使用哪种持久化方式? 一般来说, 如果想达到足以媲美 Post ...