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. 美柚“姨妈假”上头条,App事件营销怎么做

        近期,微博上有关"姨妈假"的话题异常火爆,事件源于厦门互联网企业美柚所推出的一项"奇葩福利"------女员工可向公司请姨妈假.此事经媒体报道.微博爆料 ...

  2. 在VS2013中打开Nuget

    1.工具→NuGet程序包管理器→程序包管理控制台 2.没有的话,就去  工具→扩展和更新   搜索nuget

  3. Java 使用StringBuffer注意

    Stringbuffer使用注意   问题背景: 模拟客户端使用Socket请求服务器核心系统,核心系统正常响应,内容较大,近2715KB,大于2.6M多. 使用指定编码GBK来接收响应内容到过程中没 ...

  4. UIView创建的两种方式

    //通过xib创建 NSBundle * bundle = [NSBundle mainBundle]; NSArray * arr = [bundle loadNibNamed:@"myV ...

  5. Hibernate “N+1”查询问题

    Hibernate 默认情况下使用立即检索策略,即从数据库加载A对象时  会同时加载跟它关联的B,这样产生了不必要的对象集合查询,而且本来可以合并的sql要执行1+N次,因为一条select出所有的A ...

  6. erlang中遍历取出某个位置的最大值

    例:有这么一个列表,A = [["abc","bds",3],["ssdss","dddx",2],["sfa ...

  7. Nginx 经验小结

    chmod 777 永远不要 使用 777,有时候可以懒惰的解决权限问题, 但是它同样也表示你没有线索去解决权限问题,你只是在碰运气. 你应该检查整个路径的权限,并思考发生了什么事情. 把 root ...

  8. 利用.dSYM跟.app文件准确定位Crash位置

     本文转载至  http://blog.csdn.net/lvxiangan/article/details/28102629       利用.dSYM和.app文件准确定位Crash位置首先,确保 ...

  9. EasyDSS RTMP流媒体服务器的HTTP接口query url的C++实现方法

    EasyDSS支持HTTP GET接口访问,我们需要获取url的各种参数信息 比如http://ip:port/action?a=1&b=2&c=3 我们需要知道对应的a.b.c的值 ...

  10. redis启动错误-- Creating Server TCP listening socket *:6379: listen: UnKnown error

    前提:windows server 2008.redis 3.x 今天给服务器部署redis环境,文件配置.服务安装都很顺利,可就在启动服务的时候提示 百度老半天也没找到个说到点子上的. 这里记录下解 ...