关于信息长度的限制:
一般来说,在服务器发送给浏览器端的HTML中含有的JavaScript会对用户输入的信息做检查,防止信息超过一定的长度,但是实际上用户可以不通过浏览器,自己生成数据包发送到服务器端,所以为了防止用户发送过长的数据包,需要在服务器端检查用户的数据包的长度。当然这里同时需要注意的是要在用户登入的时候在服务器端检查用户名称和密码的最大长度,同时如果设定了用户性别的话,也要设定其长度限制,事实上如果用户是通过浏览器方式的话,因为在服务器发送给客户的HTML文本中已经通过JavaScript剧本做了限定,一般不会有问题,但是要考虑用户通过自己合成数据包发送类似信息所产生的问题。
数据包内容的判断:
因为恶意用户可能会在发送的信息中含有恶意的JavaScript代码或者是HTML代码,如果这样的信息包在服务器端不经过处理而直接传送到其他用户的浏览器上的话,就会造成其他用户的浏览器不停的打开新的窗口,直到耗尽系统的资源。其他的比如发送特大的图象或者是其他的多媒体文件到指定的客户端就会对该客户端用户造成不良的影响。所以一般我们需要对用户发送的信息进行处理,屏蔽这些HTML语句和Javascript语句。因为所有的命令都是包含在“<>”里面的,所以最简单的方法就是当服务器接收到“<>”字符的时候,只把“<>”看成是普通的字符而不是命令的标志符,就可以避免这个问题。当然为了增加聊天的趣味性,可以对某一些可信任的用户开放这些功能。
用户身份的鉴别:
很多聊天室在传送数据包的时候,只是根据网页中隐含的字段得到用户的名称作为用户的标识来发送信息。比如国内比较典型的聊天站点(www.XXXXX.net)的用户的发送信息的数据包的格式是这样的:GET http://chat.XXXXX.net/BANNER?USER=username&
SAYS=%3Ch2%3Ethis+is+test%3C%2Fh2%3E&IMG=&IMGURL=&
WHOTO=%CB%F9%D3%D0%C8% CB&ACTION=%CB%B5%BB%B0&as=on&msg=HTTP/1.0 其中username就是表示该数据包是这个用户发送的。这样我们就很容易自己构建一个类似的数据包,而把用户名称替换成其他任何我们想要替换的人的名称,这样聊天室中的信息就会变得比较混乱,搞不清楚消息到底是谁发送的。
|