c#如何实现显示在线用户列表的功能

c#如何实现显示在线用户列表的功能,第1张

在ASP时代,要实现一个网站的在线用户列表显示功能的惯用做法是修改globalasa文件中的:Application_Start、Session_Start和Session_End这三个函数。在ASPNET时代,我依然这样做。但是必须注意很多问题。首先来看看最简单的代码实现:
protected void Application_Start(Object sender, EventArgs e)
{
ApplicationLock();
Application["OnlineUsers"]=null;
ApplicationUnLock();
}
protected void Session_Start(Object sender, EventArgs e)
{
ApplicationLock();
if(Application["OnlineUsers"]==null)
Application["OnlineUsers"]=new Hashtable();
Hashtable onlineUsersHash=(Hashtable)Application["OnlineUsers"];
onlineUsersHashAdd(RequestUserHostAddress, RequestCookies["UserName"]Value);
ApplicationUnLock();
}
protected void Session_End(Object sender, EventArgs e)
{
Hashtable onlineUsersHash=(Hashtable)Application["OnlineUsers"];
onlineUsersHashRemove(RequestUserHostAddress);
}
这就是一个简单的能实现记录在线用户列表的代码。呵呵,简单吧?你可以传到服务器上去试试!如果你和我一样,看到自己的用户名已经出现在列表中,就欢呼雀跃地告诉许多网友很简单就实现了一个在线用户列表显示功能,然后就关了机器去睡觉了的话,那么第二天清晨你会大吃一惊!你的网站上的在线用户列表中的人名会多的数不清,而且你会知道其实那些人根本就不在线上… 哦,真是个灾难!算法思想没有任何错误,但是却得出错误的结果,为什么呢?虽然是一个小小的功能,但是却隐藏了许多玄机,这个就要看你是否能解开了…
首先我要肯定一点,用Hashtable这样的数据结构来存储在线用户的名称的确是个不错的选择。主键使用用户的IP地址,主键值存放用户名称。因为网络中的IP地址是唯一的,所以用它来充当主键时对的。出现上述错误的原因是在Session_End函数中,Hashtable没有将主键删除掉?!
我想所有初学者都会和我一样,会问:既然IP地址在整个网络中是唯一的,那为什么还无法删除Hashtable中的键呢?答案是:Hashtable没有找到主键名,即用户的IP地址:RequestUserHostAddress!这听起来真是笑话,用户IP地址怎么会找不到呢?只要用户登陆Internet,就必有IP地址!它怎么会找不到呢?
我告诉你,原因是:用户根本就没有登陆Internet!
什么在线,又不在线的?我想你现在应该已经晕了… 不过,看了下面的图例,我想你就明白了…
如果觉得示意图有些小,可以调整显示比例(Word菜单 à 视图 à 显示比例)。
左图是假设一个用户先登录Bincess论坛,而后就去了WadeLauorg(WadeLaunet)这个网站。但是他一直没有断开连接,一直都在Internet上。而当AfritXianet的服务器结束了用户的Session时,就会调用:
protected void Session_End(Object sender, EventArgs e)
{
Hashtable onlineUsersHash=(Hashtable)Application["OnlineUsers"];
onlineUsersHashRemove(RequestUserHostAddress);
}

它是一种滥用资源性的攻击,目的就是利用自身的资源通过一种放大或不对等的方式来达到消耗对方资源的目的。同一时刻很多不同的IP对服务器进行访问造成服务器的服务失效甚至死机。(1)网站的数据流量突然超出平常的十几倍甚至上百倍,而且同时到达网站的数据包分别来自大量不同的IP。(2)大量到达的数据包(包括TCP包和UDP包)并不是网站服务连接的一部分,往往指向你机器任意的端口。比如你的网站是Web服务器,而数据包却发向你的FTP端口或其它任意的端口。2、BAN IP地址法确定自己受到攻击后就可以使用简单的屏蔽IP的方法将DOS攻击化解。对于DOS攻击来说这种方法非常有效,因为DOS往往来自少量IP地址,而且这些IP地址都是虚构的伪装的。在服务器或路由器上屏蔽攻击者IP后就可以有效的防范DOS的攻击。不过对于DDOS来说则比较麻烦,需要我们对IP地址分析,将真正攻击的IP地址屏蔽。不论是对付DOS还是DDOS都需要我们在服务器上安装相应的防火墙,然后根据防火墙的日志分析来访者的IP,发现访问量大的异常IP段就可以添加相应的规则到防火墙中实施过滤了。当然直接在服务器上过滤会耗费服务器的一定系统资源,所以目前比较有效的方法是在服务器上通过防火墙日志定位非法IP段,然后将过滤条目添加到路由器上。例如我们发现进行DDOS攻击的非法IP段为21115300 25525500,而服务器的地址为6115351。那么可以登录公司核心路由器添加如下语句的访问控制列表进行过滤。cess-list 108 deny tcp 21115300 00255255 6113551 0000这样就实现了将21115300 25525500的非法IP过滤的目的。小提示:在访问控制列表中表示子网掩码需要使用反向掩码,也就是说00255255表示子网掩码为25525500。

1[单选题]下列属于广域网QoS技术的是()。

ARSVPBPSTNCMSTPDISDN

参考答案:A

参考解析:属于广域网QoS技术的是RSVP。目前宽带城域网保证服务质量QoS要求的技术主要有资源预留(RSVP)、区分服务(DittServ)和多协议标记交换(MPLS)。故选项A正确。

2[单选题] 以下不属于网络安全评估内容的是()。

A数据加密B漏洞检测C风险评估D安全审计

参考答案:A

参考解析:网络安全风险评估系统是一种集网络安全检测、风险评估、修复、统计分析和网络安全风险集中控制管理功能于一体的网络安全设备。网络安全评估包括漏洞检测、修复建议和整体建议等几个方面。综上可知A项不属于网络安全评估内容。

3[单选题] 下列关于RPR技术的描述中,错误的是()。

ARPR环能够在50ms内实现自愈

BRPR环中每一个节点都执行DPT公平算法

CRPR环将沿顺时针方向传输的光纤环叫做外环

DRPR的内环与外环都可以传输数据分组与控制分组

参考答案:B

参考解析:RPR采用自愈环设计思路,能在50ms时间内隔离出现故障的结点和光纤段,提供SDH级的快速保护和恢复。d性分组环(RPR)中每一个节点都执行SRP公平算法,与FDDI一样使用双环结构。RPR将顺时针传输的光纤环称为外环,将沿逆时针传输的光纤环称为内环,并且其内环和外环都可以传输数据分组和控制分组。因此8选项描述错误。

4[单选题] 下列对IPv6地址的表示中,错误的是()。

A::50D:BC:0:0:03DA

BFE23::0:45:03/48

CFE23:0:0:050D:BC::03DA

DFF34:42:BC::0:50F:21:0:03D

参考答案:D

参考解析:IPv4地址采用32位的点分四段十进制表示,而IPv6采用的是128位的冒分八段十六进制法。按照RFC2373定义,一个完整的IPv6地址的表示法:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx例如:2031:0000:1F1F:0000:0000:0100:11A0:ADDF。为了简化其表示法,RFC2373提出每段中前面的0可以省,连续的0可省为"::",但只能出现一次,例如:1080:0:0:0:8:800:200C:417A可以简写为1080::8:800:200C:417A。类似于IPv4中的CDIR表示法,IPv6用前缀来表示网络地址空间,比如: 2001:250:6000::/48表示前缀为48位的地址空间。而D选项中的FF4:42:BC::0:50F:21:0:03D已经超过8段,所以表示错误。因此选择D选项。

5[单选题] 在Cisco路由器上使用命令"snmp-server host 59671482 system"进行SNMP设置,如果在管理站59671482上能正常接收来自该路由器的通知,那么下列描述中错误的是()。

A路由器上已用"snmp-server enable traps"设置了SNMP代理具有发出通知的功能

B管理站59671482使用TCP的162端口接收通知

C路由器向管理站按照团体字system发送通知

D路由器使用SNMP版本1向管理站发送通知

参考答案:B

参考解析:能正常接收来自路由的通知,说明路由上已设置SNMP代理并具有发出通知的功能。UDP端口号缺省为162,system为管理站团体字,SNMP版本1是最基本、最简单的,几乎所有网络设备和计算机 *** 作系都支持它。

6[单选题] 常用数据备份方式包括完全备份、增量备份和差异备份,三种方式在数据恢复速度方面由快到慢的顺序为()。

A完全备份、增量备份、差异备份

B完全备份、差异备份、增量备份

C增量备份、差异备份、完全备份

D差异备份、增量备份、完全备份

参考答案:B

参考解析:完全备份是指对整个系统或用户指定的所有文件数据进行一次全面的备份;增量备份只是备份相对于上一次备份 *** 作以来新创建或者更新过的数据;差异备份即备份上一次完全备份后产生和更新的所有新的数据。恢复速度完全备份最快,增量备份最慢,差异备份介于两者之间。所以,恢复速度由快到慢的顺序是完全备份>差异备份>增量备份。

7[单选题] 在一台Cisc0路由器上执行show access1ists命令显示如下一组限制远程登录的访问控制列表信息

Standard IP access list 40

permit 1671127589(54 matches)

permit 2021136556(12 matches)

deny any(1581 matches)

根据上述信息,正确的access-list的配置是()。

ARouter(config)#access-list 40 permit l671127589

Router(config)#access-list 40 permit 2021136556

Router(config)#access-list 40 deny any

Router(config)#line vty 0 5

Router(config-line)#access-class 40 in

BRouter(config)#access-list 40 permit l671127589 log

Router(config)#access-list 40 permit 2021136556 log

Router(config)#access-list 40 deny any log

Router(config)#1ine vty 0 5

Router (config-line)#access-class 40 in

CRouter(config)#access-list加permit l671 127589 log

Router(config)#access-list 40 permit 2021136556 log

Router(config)#access-list 40 deny any log

Router(config)#line vty 0 5

Router(config-1ine)#accessclass 40 0ut

DRouter(config)#access-list 40 permit 1671127589

Router (config)#access-list 40 permit 2021136556

Router(config)#access-list 40 deny any log

Router(config)#line vty 0 5

Router(config-1ine)#access-class 40 0ut

参考答案:A

参考解析:根据配置标准访问控制列表的命令格式"access-list access1istnumber{permit | deny}SOUl-Ce wildeardmask"可知,B、C明显错误,D选项"ac-cess1ist 40 deny any"后面不用加log。
8[单选题] 下列IP、,6地址表示中,错误的是()。

A21AD::D1:0:1/48

B3D:0:2AA:D0:2F38:1::/64

CFE80:0:0:0:0:FE:FE80:2AI

DFE11::70D:BC:O:80:0:0:7CB

参考答案:D

参考解析:用IPV6地址表示需要注意:在使用零压缩法时,不能把一个位段内部的有效0也压缩掉;双冒号::在一个地址中只能出现一次;在得到一个一个IPV6地址时,经常会遇到如何确定双冒号::之间被压缩0的位数的问题;IPV6不支持子网掩码,它只支持前缀长度表示法。本题中D选项已经有8个位段,没有全0位段压缩,不应该使用双冒号::。

9[单选题] 下列关于IPS的描述中,错误的是()。

ANIPS应该串接在被保护的链路中

BNIPS对攻击的漏报会导致合法的通信被阻断

CHIPS可以监视内核的系统调用,阻挡攻击

DAIPS一般部署于应用服务器的前端

参考答案:B

参考解析:NIPS布置于网络出口处,一般串联于防火墙与路由器之间。对于NIPS来说,入侵检测的准确性和高性能至关重要。攻击的误报将导致合法的通信被阻断,导致拒绝服务。HIPS安装在受保护的主机系统中,检测并阻止针对本机的威胁和攻击。它与 *** 作系统内核紧密结合在一起,监视内核的系统调用、阻挡攻击、并记录日志。AIPS一般部署在应用服务器的前端,保证了应用服务器的安全性,故选项B错误。

10[简答题] 某公司网络管理员使用DHCP服务器对公司内部主机的IP地址进行管理。在某DHCP客户机上连续执行"ipconfig/all"和"ipconfig/renew"命令,执行"ipconfig/all"得到的部分信息如图(A所示,执行"ipcon-fig/renew"命令时,在客户机捕获的报文及相关分析如图(B所示。请分析图中的信息,补全空白内容。

Ethernet adapter本地连接:

Description:Broadcom 440x 10/100 Integrated Controller

Physical Address:00-16-18-F1-C5-68

Dhcp Enabled:Yes

IP Address:192168050

Subnet Mask:2552552550

Default Gateway:l9216801

DHCP Server:1921680100

DNS Server:1921680100

Lease Obtained:2013年o7月l8日8:29:03

Lease Expires:2013年07月26日8:29:03

图(A)在DHCP客户机执行ipeonfig/all获取的部分信息

编号源IP地址目的IP地址报文摘要报文捕获时间

1192168050 11 DHCP:Request,Type:DHCP request2013-07-18 09:10:O0

21921680100 12DHCP:Reply,Type:DHCP ack2013-07-18 09:10:00

DHCP:- - - - - - DHCP Header- - - - -

DHCP:Boot record type=2(Reply)

DHCP:Hardware address type=1(10M Ethemet)

DHCP:Hardware address lensth=13bytes

DHCP:Hops=0

DHCP:Transaction id=2219121 F

DHCP:Elapsed boot time= 0 seconds

DHCP:Flags=0000

DHCP:0=no broadcast

DHCP:Client self-assigned address=[0000]

DHCP:Client address=[192168050]

DHCP:Next Server to use in bootstrap=[0000]

DHCP:Relay Agent=[0000]

DHCP:Client hardware address=14

DHCP:Host nalne=""

DHCP:Boot file nanle=""

DHCP:Vendor Information tag=53825363

DHCP:Message Type=5(DHCP Ack)

DHCP:Address renewel interval=345600(seconds)

DHCP:Address rebinding interval=604800(seconds)

DHCP:Request IP Address leased time=691200(seconds)

DHCP:Sever IP Address=[1921680100]

DHCP:Subnet mask=2552552550

DHCP:Gateway address=[19216801]

DHCP:Domain Name Server address=15

图(B)在DHCP客户机上执行ipconfig/renew时捕获的报文及第2条报文的分析

参考解析:

解题思路

DHCP服务器和DHCP客户端的交互过程:

(1)动态主机配置协议(DHCP)客户从DHCP服务器申请一个IP地址

①DHCP客户主机A发送一个"DHCP发现"广播包给DHCP服务器。由于DHCP客户机还未配置IP地址,它只能使用广播方式发送该消息,并且源IP地址设置为0000。

②DHCP服务器用一个"DHCP供给"单播数据包给予应答,并提供DHCP客户所需的TCP/IP属性的配置参数。配置参数包括IP地址、子网掩码、缺省网关、域名和域名服务器的IP地址。

③主机A会发送一个"DHCP请求"广播包给DH-CP服务器,确定与此DHCP服务器建立地址租借关系,并通告其他DHCP服务器。

④DHCP服务器在接收到一个"DHCP请求"广播包,在正常情况下,会发送一个"DHCP确认"的广播包给DHCP客户,这是一个确认相互关系的应答包。

(2)释放地址租约

在DHCP客户机的命令行窗口中,使用"ipconfig/release"命令可以释放已获得的地址租约。

(3)重新获取地址租约

在DHCP客户机的命令行窗l3中,使用"ipeonfig/renew"命令可以重新从DHCP服务器获得新的地址租约。

参考答案

11解析DHCP客户机向DHCP服务器发送"DHCP请求"消息,源IP地址为自己目前已获得的IP地址,目的IP地址为DHCP服务器的IP地址。因此11处应填入:1921680100。

12解析DHCP服务器收到"DHCP请求"消息后,就向DHCP客户机发送"DHCP确认"消息,其中包括提供给DHCP客户机的IP地址和相关的配置信息。源IP地址为DHCP服务器的IP地址,目的IP地址为DHCP客户机已获得的IP地址。因此12处应填入:192168050。

13解析该空要填入的是客户机的网络硬件地址长度,该地址指6 bytes的Mac地址,因此13处应填入:6。

14解析根据命令ipconfig/all的输出,得知该空要填入客户机的Mac地址。因此14处应填入:00-16-18-F1-C5-68。

15解析该空要填入域名服务器的地址。根据命令ipconfig/all的输出,15处应填入:1921680100。

它是一种滥用资源性的攻击,目的就是利用自身的资源通过一种放大或不对等的方式来达到消耗对方资源的目的。同一时刻很多不同的IP对服务器进行访问造成服务器的服务失效甚至死机。 (1)网站的数据流量突然超出平常的十几倍甚至上百倍,而且同时到达网站的数据包分别来自大量不同的IP。 (2)大量到达的数据包(包括TCP包和UDP包)并不是网站服务连接的一部分,往往指向你机器任意的端口。比如你的网站是Web服务器,而数据包却发向你的FTP端口或其它任意的端口。 2、BAN IP地址法 确定自己受到攻击后就可以使用简单的屏蔽IP的方法将DOS攻击化解。对于DOS攻击来说这种方法非常有效,因为DOS往往来自少量IP地址,而且这些IP地址都是虚构的伪装的。在服务器或路由器上屏蔽攻击者IP后就可以有效的防范DOS的攻击。不过对于DDOS来说则比较麻烦,需要我们对IP地址分析,将真正攻击的IP地址屏蔽。 不论是对付DOS还是DDOS都需要我们在服务器上安装相应的防火墙,然后根据防火墙的日志分析来访者的IP,发现访问量大的异常IP段就可以添加相应的规则到防火墙中实施过滤了。 当然直接在服务器上过滤会耗费服务器的一定系统资源,所以目前比较有效的方法是在服务器上通过防火墙日志定位非法IP段,然后将过滤条目添加到路由器上。例如我们发现进行DDOS攻击的非法IP段为21115300 25525500,而服务器的地址为6115351。那么可以登录公司核心路由器添加如下语句的访问控制列表进行过滤。 cess-list 108 deny tcp 21115300 00255255 6113551 0000 这样就实现了将21115300 25525500的非法IP过滤的目的。 小提示:在访问控制列表中表示子网掩码需要使用反向掩码,也就是说00255255表示子网掩码为25525500。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13410921.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-30
下一篇 2023-07-30

发表评论

登录后才能评论

评论列表(0条)

保存