1. <var id="fe6gj"></var>

    <rp id="fe6gj"><nav id="fe6gj"></nav></rp>

    <noframes id="fe6gj"><cite id="fe6gj"></cite>

    <ins id="fe6gj"><button id="fe6gj"><p id="fe6gj"></p></button></ins>
    1. <tt id="fe6gj"><i id="fe6gj"><sub id="fe6gj"></sub></i></tt>
        始創于2000年 股票代碼:831685
        咨詢熱線:0371-60135900 注冊有禮 登錄
        • 掛牌上市企業
        • 60秒人工響應
        • 99.99%連通率
        • 7*24h人工
        • 故障100倍補償
        您的位置: 網站首頁 > 幫助中心>文章內容

        聊天室的攻防技巧

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

          我們知道瀏覽器實際上除了和Web服務器進行消息的傳送以外,還負責對服務器發送回來的HTML頁面進行解析,而現在幾乎所有的瀏覽器都支持javascript,這樣如果用戶在發送信息的時候,不是發送正常的文本而是一些帶標記的HTML語言甚至是javascript的時候,如果這些語句又是一些惡意的程序代碼,就會對用戶造成損害。

          另外,用戶可以通過代理截獲所有發送和接收的數據包,通過自己編寫的應用程序不停的向服務器發送類似格式的數據包使服務器不能處理其他用戶的信息包,能夠這樣做的原因是因為瀏覽器和Web服務器通訊并不是通過一個固定的Socket連接進行的,服務器端實際上只是判別數據包本身的合法性,并不判斷數據包是從哪個IP地址和哪個Port端口發送的。而瀏覽器是每次發送數據包的時候和服務器建立一個Socket連接,當該次傳送完成后連接就會斷開。

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

          二、需要注意的問題和防范

        ?牐犛捎贠ICQ是用戶間的直接連接,所以很容易被查出IP地址而受到攻擊,在解決了單機上的安全問題之后,我們面對的將是如何在網絡上進行防護。

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

          目前比較好的防火墻有LockDown 2000、ZoneAlarm和天網等等,這些工具都有漢化的版本,因此使用方面應該是沒有太大的問題。如果在這些防火墻程序中將安全等級設置為“高”的話,它們就會對網絡上發送和接收的每一個字節進行監測,同時也會對指定的端口進行實時的查看,一旦發現有非正常的數據包企圖進入計算機系統,它們就會加以攔截。

          關于信息長度的限制:一般來說,在服務器發送給瀏覽器端的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就是表示該數據包是這個用戶發送的。這樣我們就很容易自己構建一個類似的數據包,而把用戶名稱替換成其他任何我們想要替換的人的名稱,這樣聊天室中的信息就會變得比較混亂,搞不清楚消息到底是誰發送的。

          為了避免這個問題,我們的解決方案是這樣的,當用戶首次登入的時候,服務器系統應該生成一個唯一的sessionID來標識這個用戶,這樣,每次用戶發送的數據包中必須包括這個sessionID,服務器根據這個sessionID來識別是否是該用戶發送的消息,如果是一個不合法的sessionID的話,就簡單的丟棄這個數據包。因為sessionID是在服務器端隨機生成的,所以用戶很難自己構造一個合法的sessionID來欺騙服務器,保證了信息來源的可靠性。當然如果服務器需要用戶首先注冊的話,可以同時檢查用戶的密碼和sessionID是否匹配,這樣用戶偽造其他用戶的信息的可能性就會更小。

          關于用戶發送重復的信息和自動循環發送隨機信息(即通常所說的聊天室刷屏現象)的處理:

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

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

          三、小結

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


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

        服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

      1. 您可能在找
      2. 億恩北京公司:
      3. 經營性ICP/ISP證:京B2-20150015
      4. 億恩鄭州公司:
      5. 經營性ICP/ISP/IDC證:豫B1.B2-20060070
      6. 億恩南昌公司:
      7. 經營性ICP/ISP證:贛B2-20080012
      8. 服務器/云主機 24小時售后服務電話:0371-60135900
      9. 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
      10. 專注服務器托管17年
        掃掃關注-微信公眾號
        0371-60135900
        Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
          0
         
         
         
         

        0371-60135900
        7*24小時客服服務熱線

         
         
        av不卡不卡在线观看_最近2018年中文字幕_亚洲欧美一区二区三区_一级A爱做片免费观看国产_日韩在线中文天天更新_伊人中文无码在线