none
如何限制短時間內讀取相同網頁? RRS feed

  • 問題

  •  

    HI, 最近在公司遇到一些問題, 在google找了很久都找不到答案,

     

    有A.B兩個網頁, A網頁是根據客人所選擇的選項當成B網頁的參數,

    這幾天發現在網站log檔一秒鐘發生20-30筆錯誤, 且每筆錯誤參數都不相同

    IP位置都不相同 , 一直在改變, 不知是不是有人在解析網頁資料 = =

    想在限制使用者開啟B網頁一秒內只能開一次!?

    試了很多方法, 但都不盡理想

    所以想請教各位, 希望知道的人可以給小弟解答 謝謝~~~

     

     

     

     

     

     

     

     

    2008年10月27日 上午 10:01

解答

  • HI,

     

    您可以使用ASP.NET AJAX提供的NoBot控制項, 請參考:

    http://www.asp.net/ajax/ajaxcontroltoolkit/samples/NoBot/NoBot.aspx

     

    tihs

     

    2008年10月28日 上午 05:27
  • 有些東西在安全設計上要先考慮,才做網站設計,但不知道你目前的網站設計,下面舉個例子可用來做通用設計:

     

    1. 設計一個共用類別

    a. SQL: 瀏覽網頁時,將 IP / Proxy / 時間寫入資料庫

    b. SQL: 刪除指定時間以前的歷史紀錄 (可抽出來每日定時砍)

    c. SQL: 依照 IP / Proxy / 時間條件做 Count 計算

     

    2. 當 Count 數大於你指定的量,轉址到拒絕服務說明網頁,或是輸出空白

     

    註:若用 IP 分享器且有設定 ISP 業者的 Proxy 時,則無法分辨,比如說某公司下面有 10 個使用者透過 IP 分享器連接,且都有設定 Proxy 時,可以抓到的資訊會都是相同的,可以的話可以配合 Session ,但是廣告程式可以每次都開一個新的 Session ,所以配合 Session 的要有會員登入的機制才有意義。

     

    2008年10月28日 下午 12:03

所有回覆

  • 你不能禁止別人連線要求,你只能輸出空白了。

     

    簡單一點用全域變數處理記錄日期就可以了。

     

    2008年10月27日 上午 11:31
  • HI,

     

    您可以使用ASP.NET AJAX提供的NoBot控制項, 請參考:

    http://www.asp.net/ajax/ajaxcontroltoolkit/samples/NoBot/NoBot.aspx

     

    tihs

     

    2008年10月28日 上午 05:27
  •  

    To 心冷大大

     

    想請教一下, 你有提到用全域變數處理記錄日期的方法

    在page_load去記錄時間放在全域變數中, 之後全域變數在與現在時間做比較

     

    如果對方是使用程式攻擊的話, 有沒有可能不開啟網頁就直接讀取網頁的資料

    這樣子全域變數是否就會失效呢?

     

    To tihs大大

    有查NoBot的相關說明, 可以解決此問題

    但公司開發環境版本比較舊 ( VS2003 ) 所以沒辦法使用此控制項

     

    有想到將一些資訊(如登入ip, 時間)記在session中, 但擔心流量比較大的話

    會很消耗系統資源, 所以此方法不是很恰當 @@

     

    很感謝兩位大大的回答.謝謝^^~

     

    2008年10月28日 上午 07:52
  • 程式攻擊沒辦法動到你的網站內部邏輯。

     

    看不懂你寫的意思。

    2008年10月28日 上午 08:30
  •  

    抱歉 我重新詮釋一下

     

    如果有人蓄意想解析我們公司網頁的內容,

    1.他可以使用bot程式不斷去try網頁所需要的參數

    2.如果參數內容正確的話

    3.server會回傳網頁內容資訊給電腦解析

    4.電腦在透過瀏覽器呈現所回傳資料內容

     

    對方有沒有可能在步驟3的時候

    利用程式去解析網頁內容~並且最後不透過瀏覽器顯示出來

    如果有此情形的話 全域變數是否就會失效呢?

     

    希望這樣講大大能夠了解~

     

     

    2008年10月28日 上午 09:11
  • 你的問題應該在:

    安全開發(Secure Development)
    如果您在開發系統時,遇到任何與安全性相關的問題,都可以在此討論

     

    ASP.NET 與 AJAX(ASP.NET and AJAX)
    Web應用程式討論區。例如:ASP.NET,AJAX,Atlas,JavaScript 相關問題。

     

    討論。

     

    ASP.NET 版已有多次類似討論,你可以搜尋 攻擊 瀏覽相關討論:

    http://forums.microsoft.com/MSDN-CHT/Search/Search.aspx?words=%u653b%u64ca&localechoice=31748&SiteID=14&searchscope=forumscope&ForumID=236

    2008年10月28日 上午 11:50
  • 有些東西在安全設計上要先考慮,才做網站設計,但不知道你目前的網站設計,下面舉個例子可用來做通用設計:

     

    1. 設計一個共用類別

    a. SQL: 瀏覽網頁時,將 IP / Proxy / 時間寫入資料庫

    b. SQL: 刪除指定時間以前的歷史紀錄 (可抽出來每日定時砍)

    c. SQL: 依照 IP / Proxy / 時間條件做 Count 計算

     

    2. 當 Count 數大於你指定的量,轉址到拒絕服務說明網頁,或是輸出空白

     

    註:若用 IP 分享器且有設定 ISP 業者的 Proxy 時,則無法分辨,比如說某公司下面有 10 個使用者透過 IP 分享器連接,且都有設定 Proxy 時,可以抓到的資訊會都是相同的,可以的話可以配合 Session ,但是廣告程式可以每次都開一個新的 Session ,所以配合 Session 的要有會員登入的機制才有意義。

     

    2008年10月28日 下午 12:03
  • 這點當初在開發時並沒有考慮到, 之後在開發新專案時會在特別注意

     

    感謝心冷大大這幾天來替小弟回答問題, 學到了很多新觀念, 對小弟有很大幫助 謝謝^^~

    2008年10月30日 上午 12:59