• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    Web性能測試和CC攻擊和方法和防范

    發布: 2010-7-05 09:53 | 作者: 不詳 | 來源: 領測測試網采編 | 查看: 77次 | 進入軟件測試論壇討論

    領測軟件測試網

      Web性能測試和CC攻擊和方法和防范   軟件測試

      1、Web性能測試

      Web性能測試涉及的范圍太廣,但一般web開發者在程序上線以后很多都曾遇到過性能的問題。普遍表現為頁面速度開始急劇變慢,正常訪問時間變的很長,或則干脆給你拋出異常錯誤頁面。這里會涉及到很多可能發生的情況,舉例幾個最主要發生的情況:

      * 數據庫連接超過最大限制,目前一般表現為程序的連接池滿,拒絕了與數據庫的連接。

      * 數據庫死鎖

      * Web Server 超過最大連接數(一般在虛擬主機上才會限制)

      * 內存泄漏

      * Http連接數太多,即訪問量超過了機器和軟件設計正常所能提供的服務

      2、CC攻擊

      CC主要是用來攻擊頁面的.大家都有這樣的經歷,就是在訪問論壇時,如果這個論壇比較大,訪問的人比較多,打開頁面的速度會比較慢,訪問的人越多,論壇的頁面越多,數據庫就越大,被訪問的頻率也越高,占用的系統資源也就相當可觀。

      一個靜態頁面不需要服務器多少資源,甚至可以說直接從內存中讀出來發給你就可以了,但是論壇就不一樣了,我看一個帖子,系統需要到數據庫中判斷我是否有讀讀帖子的權限,如果有,就讀出帖子里面的內容,顯示出來——這里至少訪問了2次數據庫,如果數據庫的體積有200MB大小,系統很可能就要在這200MB大小的數據空間搜索一遍,這需要多少的CPU資源和時間?如果我是查找一個關鍵字,那么時間更加可觀,因為前面的搜索可以限定在一個很小的范圍內,比如用戶權限只查用戶表,帖子內容只查帖子表,而且查到就可以馬上停止查詢,而搜索肯定會對所有的數據進行一次判斷,消耗的時間是相當的大.

      CC就是充分利用了這個特點,模擬多個用戶(多少線程就是多少用戶)不停的進行訪問(訪問那些需要大量數據操作,就是需要大量CPU時間的頁面).這一點用一個一般的性能測試軟件就可以做到大量模擬用戶并發。

      假設服務器A對Search.asp的處理時間需要0.01S(多線程只是時間分割,對結論沒有影響),也就是說他一秒可以保證100個用戶的 Search請求,服務器允許的最大連接時間為60s,那么我們使用CC模擬120個用戶并發連接,那么經過 1分鐘,服務器的被請求了7200次,處理了6000次,于是剩下了1200個并發連接沒有被處理.有的朋友會說:丟連接!丟連接!問題是服務器是按先來后到的順序丟的,這1200個是在最后10秒的時候發起的,想丟?!還早,經過計算,服務器滿負開始丟連接的時候,應該是有7200個并發連接存在隊列, 然后服務器開始120個/秒的丟連接,我們發動的連接也是120個/秒,服務器永遠有處理不完的連接,服務器的CPU 100%并長時間保持,然后丟連接的60秒服務器也判斷處理不過來了,新的連接也處理不了,這樣服務器達到了超級繁忙狀態.

      我們假設服務器處理Search只用了0.01S,也就是10毫秒(這個速度你可以去各個有開放時間顯示的論壇看看),我們使用的線程也只有 120,很多服務器的丟連接時間遠比60S長,我們的使用線程遠比120多,可以想象可怕了吧,而且客戶機只要發送了斷開,連接的保持是代理做的,而且當服務器收到SQL請求,肯定會進入隊列,不論連接是否已經斷開,而且服務器是并發的,不是順序執行,這樣使得更多的請求進入內存請求,對服務器負擔更大.

      3、防范方法

      說了攻擊原理,大家肯定會問,那么怎么防御?使用硬件防火墻我不知道如何防范,除非你完全屏蔽頁面訪問,我的方法是通過頁面的編寫實現防御.

      1. 使用Cookie認證.這時候朋友說CC里面也允許Cookie,但是這里的Cookie是所有連接都使用的,所以啟用IP Cookie認證就可以了.

      2. 利用Session.這個判斷比Cookie更加方便,不光可以IP認證,還可以防刷新模式,在頁面里判斷刷新,是刷新就不讓它訪問,沒有刷新符號給它刷新符號.給些示范代碼吧,Session:

      程序代碼:

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: web Web WEB 攻擊 性能測試

    21/212>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>