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. awstats的安装和配置

    一.Awstats简介Awstats是一个免费非常简洁而且强大有个性的网站日志分析工具.它可以统计您站点的如下信息:一:访问量,访问次数,页面浏览量,点击数,数据流量等二:精确到每月.每日.每小时的数 ...

  2. struts2类型转换+校验

    1.action中validate()与validateXxx() 用于action执行前的校验,如果校验失败,跳到input视图, 前者校验整个Action: 后者校验该Action中的Xxx方法. ...

  3. Flume 开发人员指南V1.5.2

    介绍 概述 Apache Flume是一个用来从非常多不同的源有效地收集.聚集和移动大量的日志数据到一个中心数据仓库的分布式的,可靠的和可用的系统. Apache Flume是Apache软件基金会的 ...

  4. vs 已经加入了引用,编译还是提示没有加入引用

    已经加入了引用,可是.编译还是通只是. 原因:项目总体框架是.Net FramWork4.5,nep中的框架也是4.5.而编译只是的project是4.0. 解决的方法:将编译只是的项目框架改为4.5

  5. c# out ref

    out 关键字会导致参数通过引用来传递.这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化.若要使用 out 参数,方法定义和调用方法都必须显式使用 out 关键字.例如 ...

  6. iOS多线程与网络开发之多线程概述

    郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 假设文章对您有所帮助,欢迎给作者捐赠.支持郝萌主,捐赠数额任意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 游戏官方下 ...

  7. Linux环境变量PS1配置

    1. 说明: 在Shell下,我们能够拥有更加色慘斑斓的提示行信息.这能够通过改变bash的$PS1环境变量还设置,如以下就是提示行的一种: user@host$ root用户的提示是这种: user ...

  8. C# 请求Web Api 接口,返回的json数据直接反序列化为实体类

    须要的引用的dll类: Newtonsoft.Json.dll.System.Net.Http.dll.System.Net.Http.Formatting.dll Web Api接口为GET形式: ...

  9. XXE攻击

    1.背景 现在很多应用都存在XXE(XML External Entity attack)漏洞,就是xml外部实体攻击,比如facebook,很多XML的解析器默认是含有XXE漏洞的. 2.xml的定 ...

  10. java 方法重写原则

    方法重写应遵循“三同一小一大”原则: “三同”:即方法名相同,形参列表相同,返回值类型相同: “一小”:子类方法声明抛出的异常比父类方法声明抛出的异常更小或者相等: “一大”:子类方法的访问修饰符应比 ...