亚洲Aⅴ无码Av红楼在线观看_国产午夜福利涩爱AⅤ_国产sm调教一区二区三区_精品人妻一区二区三区不卡毛片

始創(chuàng)于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊(cè)有禮 登錄
  • 掛牌上市企業(yè)
  • 60秒人工響應(yīng)
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補(bǔ)償
全部產(chǎn)品
您的位置: 網(wǎng)站首頁(yè) > 幫助中心>文章內(nèi)容

聊天室的攻防技巧

發(fā)布時(shí)間:  2012/7/4 9:40:24
一、聊天室存在的攻擊行為

  我們知道瀏覽器實(shí)際上除了和Web服務(wù)器進(jìn)行消息的傳送以外,還負(fù)責(zé)對(duì)服務(wù)器發(fā)送回來(lái)的HTML頁(yè)面進(jìn)行解析,而現(xiàn)在幾乎所有的瀏覽器都支持javascript,這樣如果用戶在發(fā)送信息的時(shí)候,不是發(fā)送正常的文本而是一些帶標(biāo)記的HTML語(yǔ)言甚至是javascript的時(shí)候,如果這些語(yǔ)句又是一些惡意的程序代碼,就會(huì)對(duì)用戶造成損害。

  另外,用戶可以通過(guò)代理截獲所有發(fā)送和接收的數(shù)據(jù)包,通過(guò)自己編寫(xiě)的應(yīng)用程序不停的向服務(wù)器發(fā)送類(lèi)似格式的數(shù)據(jù)包使服務(wù)器不能處理其他用戶的信息包,能夠這樣做的原因是因?yàn)闉g覽器和Web服務(wù)器通訊并不是通過(guò)一個(gè)固定的Socket連接進(jìn)行的,服務(wù)器端實(shí)際上只是判別數(shù)據(jù)包本身的合法性,并不判斷數(shù)據(jù)包是從哪個(gè)IP地址和哪個(gè)Port端口發(fā)送的。而瀏覽器是每次發(fā)送數(shù)據(jù)包的時(shí)候和服務(wù)器建立一個(gè)Socket連接,當(dāng)該次傳送完成后連接就會(huì)斷開(kāi)。

  現(xiàn)在基于Web的聊天室有一般有兩種形式:一種是需要用戶認(rèn)證的,即用戶在登入服務(wù)器以前必須進(jìn)行注冊(cè),一種是不需要認(rèn)證的,即用戶只需要用一個(gè)Nickname就可以登入到聊天室中,只要該聊天室中還不存在這個(gè)NickName就可以了。關(guān)于用戶的消息處理,現(xiàn)在幾乎所有的聊天室都關(guān)閉了對(duì)HTML和javascript的支持,或者是僅僅允許一部分用戶(比如聊天室的系統(tǒng)管理員等)使用這些功能。

  二、需要注意的問(wèn)題和防范

?牐犛捎贠ICQ是用戶間的直接連接,所以很容易被查出IP地址而受到攻擊,在解決了單機(jī)上的安全問(wèn)題之后,我們面對(duì)的將是如何在網(wǎng)絡(luò)上進(jìn)行防護(hù)。

?牐犑紫齲?建議大家要安裝防火墻程序。

  目前比較好的防火墻有LockDown 2000、ZoneAlarm和天網(wǎng)等等,這些工具都有漢化的版本,因此使用方面應(yīng)該是沒(méi)有太大的問(wèn)題。如果在這些防火墻程序中將安全等級(jí)設(shè)置為“高”的話,它們就會(huì)對(duì)網(wǎng)絡(luò)上發(fā)送和接收的每一個(gè)字節(jié)進(jìn)行監(jiān)測(cè),同時(shí)也會(huì)對(duì)指定的端口進(jìn)行實(shí)時(shí)的查看,一旦發(fā)現(xiàn)有非正常的數(shù)據(jù)包企圖進(jìn)入計(jì)算機(jī)系統(tǒng),它們就會(huì)加以攔截。

  關(guān)于信息長(zhǎng)度的限制:一般來(lái)說(shuō),在服務(wù)器發(fā)送給瀏覽器端的HTML中含有的javascript會(huì)對(duì)用戶輸入的信息做檢查,防止信息超過(guò)一定的長(zhǎng)度,但是實(shí)際上用戶可以不通過(guò)瀏覽器,自己生成數(shù)據(jù)包發(fā)送到服務(wù)器端,所以為了防止用戶發(fā)送過(guò)長(zhǎng)的數(shù)據(jù)包,需要在服務(wù)器端檢查用戶的數(shù)據(jù)包的長(zhǎng)度。當(dāng)然這里同時(shí)需要注意的是要在用戶登入的時(shí)候在服務(wù)器端檢查用戶名稱(chēng)和密碼的最大長(zhǎng)度,同時(shí)如果設(shè)定了用戶性別的話,也要設(shè)定其長(zhǎng)度限制,事實(shí)上如果用戶是通過(guò)瀏覽器方式的話,因?yàn)樵诜⻊?wù)器發(fā)送給客戶的HTML文本中已經(jīng)通過(guò)javascript劇本做了限定,一般不會(huì)有問(wèn)題,但是要考慮用戶通過(guò)自己合成數(shù)據(jù)包發(fā)送類(lèi)似信息所產(chǎn)生的問(wèn)題。

  數(shù)據(jù)包內(nèi)容的判斷:因?yàn)閻阂庥脩艨赡軙?huì)在發(fā)送的信息中含有惡意的javascript代碼或者是HTML代碼,如果這樣的信息包在服務(wù)器端不經(jīng)過(guò)處理而直接傳送到其他用戶的瀏覽器上的話,就會(huì)造成其他用戶的瀏覽器不停的打開(kāi)新的窗口,直到耗盡系統(tǒng)的資源。其他的比如發(fā)送特大的圖象或者是其他的多媒體文件到指定的客戶端就會(huì)對(duì)該客戶端用戶造成不良的影響。所以一般我們需要對(duì)用戶發(fā)送的信息進(jìn)行處理,屏蔽這些HTML語(yǔ)句和javascript語(yǔ)句。因?yàn)樗械拿疃际前?ldquo;<>”里面的,所以最簡(jiǎn)單的方法就是當(dāng)服務(wù)器接收到“<>”字符的時(shí)候,只把“<>”看成是普通的字符而不是命令的標(biāo)志符,就可以避免這個(gè)問(wèn)題。當(dāng)然為了增加聊天的趣味性,可以對(duì)某一些可信任的用戶開(kāi)放這些功能。

  用戶身份的鑒別:很多聊天室在傳送數(shù)據(jù)包的時(shí)候,只是根據(jù)網(wǎng)頁(yè)中隱含的字段得到用戶的名稱(chēng)作為用戶的標(biāo)識(shí)來(lái)發(fā)送信息。比如國(guó)內(nèi)比較典型的聊天站點(diǎn)(www.XXXXX.net)的用戶的發(fā)送信息的數(shù)據(jù)包的格式是這樣的: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就是表示該數(shù)據(jù)包是這個(gè)用戶發(fā)送的。這樣我們就很容易自己構(gòu)建一個(gè)類(lèi)似的數(shù)據(jù)包,而把用戶名稱(chēng)替換成其他任何我們想要替換的人的名稱(chēng),這樣聊天室中的信息就會(huì)變得比較混亂,搞不清楚消息到底是誰(shuí)發(fā)送的。

  為了避免這個(gè)問(wèn)題,我們的解決方案是這樣的,當(dāng)用戶首次登入的時(shí)候,服務(wù)器系統(tǒng)應(yīng)該生成一個(gè)唯一的sessionID來(lái)標(biāo)識(shí)這個(gè)用戶,這樣,每次用戶發(fā)送的數(shù)據(jù)包中必須包括這個(gè)sessionID,服務(wù)器根據(jù)這個(gè)sessionID來(lái)識(shí)別是否是該用戶發(fā)送的消息,如果是一個(gè)不合法的sessionID的話,就簡(jiǎn)單的丟棄這個(gè)數(shù)據(jù)包。因?yàn)閟essionID是在服務(wù)器端隨機(jī)生成的,所以用戶很難自己構(gòu)造一個(gè)合法的sessionID來(lái)欺騙服務(wù)器,保證了信息來(lái)源的可靠性。當(dāng)然如果服務(wù)器需要用戶首先注冊(cè)的話,可以同時(shí)檢查用戶的密碼和sessionID是否匹配,這樣用戶偽造其他用戶的信息的可能性就會(huì)更小。

  關(guān)于用戶發(fā)送重復(fù)的信息和自動(dòng)循環(huán)發(fā)送隨機(jī)信息(即通常所說(shuō)的聊天室刷屏現(xiàn)象)的處理:

  如果用戶只是通過(guò)瀏覽器操作的話,服務(wù)器傳送給用戶的HTML文本中包含的javascript就會(huì)在用戶發(fā)送消息的時(shí)候比較用戶的本次信息是否和上次信息相一致,如果是相一致的話,系統(tǒng)就不會(huì)發(fā)送本次信息并給出警告。而且如果用戶是在瀏覽器上進(jìn)行操作的話,用戶的信息發(fā)送間隔會(huì)受到手工操作的限制。但是,如果用戶是通過(guò)自己的應(yīng)用程序發(fā)送數(shù)據(jù)包的話,就不會(huì)有這個(gè)限制。實(shí)際上用戶可以在一個(gè)線程中不斷對(duì)服務(wù)器循環(huán)發(fā)送數(shù)據(jù)包。所以系統(tǒng)不僅要考慮在客戶端有這個(gè)限制,還需要在服務(wù)器端進(jìn)行限制。

  我們的解決方案是這樣的,對(duì)所有在線的用戶,我們建立了一個(gè)用戶池,它實(shí)際上是一個(gè)用戶對(duì)象的鏈表,每一個(gè)用戶對(duì)象包含了用戶的名稱(chēng),用戶的sessionID,用戶的上一句發(fā)言的信息和用戶上一句發(fā)言的時(shí)間。實(shí)際上這個(gè)用戶池也是滾動(dòng)的,如果用戶在最近一段時(shí)間內(nèi)沒(méi)有任何信息,我們就認(rèn)為該用戶已經(jīng)不在線上,就從信息池中刪除該用戶,以便為其他用戶的連接讓出資源。如果用戶發(fā)送的消息和上一次消息相同的話,就簡(jiǎn)單的丟棄用戶的這個(gè)數(shù)據(jù)包,如果用戶這次消息的發(fā)送時(shí)間和上一次時(shí)間間隔小于一定范圍(比如一秒)的話,我們就認(rèn)為這種數(shù)據(jù)發(fā)送速率是非正常的,就簡(jiǎn)單的從用戶池中刪除這個(gè)用戶,斷掉這個(gè)連接。通過(guò)這種解決方法有效的解決了用戶刷屏和發(fā)送重復(fù)消息的問(wèn)題。

  三、小結(jié)

  本文介紹了Internet的聊天系統(tǒng)和不同的特點(diǎn),重點(diǎn)介紹了聊天室存在的問(wèn)題和一些攻擊行為的防范,雖然黑客猖獗,不過(guò)勝利始終是屬于正義一方的。


本文出自:億恩科技【www.allwellnessguide.com】

服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營(yíng)性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營(yíng)性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經(jīng)營(yíng)性ICP/ISP證:贛B2-20080012
  • 服務(wù)器/云主機(jī) 24小時(shí)售后服務(wù)電話:0371-60135900
  • 虛擬主機(jī)/智能建站 24小時(shí)售后服務(wù)電話:0371-60135900
  • 專(zhuān)注服務(wù)器托管17年
    掃掃關(guān)注-微信公眾號(hào)
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號(hào)總部企業(yè)基地億恩大廈  法律顧問(wèn):河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號(hào)
      0
     
     
     
     

    0371-60135900
    7*24小時(shí)客服服務(wù)熱線