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. 移动端去掉按钮button默认样式

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  2. java中的值传递和引用传递区别

    值传递:(形式参数类型是基本数据类型):方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形式参数值的改变不影响 ...

  3. winform 下载文件显示进度和百分比

    /// <summary> /// 下载完成 /// </summary> private void DownloadFileCompleted() { IsComlate = ...

  4. Java多线程下载文件

    package com.test.download;   import java.io.File; import java.io.InputStream; import java.io.RandomA ...

  5. 数据库sql的join多表

    摘录文章 SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据.注意,join后的数据记录数不一定就是左或右表的简单连接,图表只代表集合关系,在数量上并不准确,如这个条件后结果, ...

  6. android开发系列之使用xml自定义控件

    在android开发的过程中,有的时候面对多个Activity里面一些相同的布局,我们需要写多次相同的代码,同时这种方法给我们的项目维护也带来了很大不便.那么有没有一种可行的办法能够将Activity ...

  7. caffe编译的问题 找不到opencv的 tiff库文件

    解决办法:    sudo  su cmake  .. make  -j8 make  pycaffe make  install 问题解决. 看起来是权限问题导致.

  8. 数据挖掘之Slope One

    计算偏差: card() 表示集合包含的元素数量. http://www.cnblogs.com/similarface/p/5385176.html 论文地址:http://lemire.me/fr ...

  9. HDFS源码分析之数据块Block、副本Replica

    我们知道,HDFS中的文件是由数据块Block组成的,并且为了提高容错性,每个数据块Block都会在不同数据节点DataNode上有若干副本Replica.那么,什么是Block?什么又是Replic ...

  10. Go 语言从新手到大神:每个人都会踩的五十个坑(转)

    Go语言是一个简单却蕴含深意的语言.但是,即便号称是最简单的C语言,都能总结出一本<C陷阱与缺陷>,更何况Go语言呢.Go语言中的许多坑其实并不是因为Go自身的问题.一些错误你再别的语言中 ...